/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
for (int i = 0; i < 100000; i++) {
HashSet<Object> set = new HashSet<>();
long items
= Math.
round(Math.
random() * 10);
for (int j = 0; j < items; j++) {
set.
add(Double.
toHexString(Math.
random() * 1232330)); }
byte[] source = toBytes(set);
Object obj
= toObject
(source
); byte[] result = toBytes(obj);
for (int j = 0; j < source.length; j++) {
if (source[j] != result[j]) {
}
}
}
}
try {
out.writeObject(obj);
out.flush();
return bos.toByteArray();
} finally {
try {
bos.close();
// ignore close exception
}
}
}
try {
return in.readObject();
} finally {
try {
if (in != null) {
in.close();
}
// ignore close exception
}
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCWZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspIHsKCiAgICAgICAgICAgIEhhc2hTZXQ8T2JqZWN0PiBzZXQgPSBuZXcgSGFzaFNldDw+KCk7CgogICAgICAgICAgICBsb25nIGl0ZW1zID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTApOwoKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpdGVtczsgaisrKSB7CiAgICAgICAgICAgICAgICBzZXQuYWRkKERvdWJsZS50b0hleFN0cmluZyhNYXRoLnJhbmRvbSgpICogMTIzMjMzMCkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBieXRlW10gc291cmNlID0gdG9CeXRlcyhzZXQpOwogICAgICAgICAgICBPYmplY3Qgb2JqID0gdG9PYmplY3Qoc291cmNlKTsKICAgICAgICAgICAgYnl0ZVtdIHJlc3VsdCA9IHRvQnl0ZXMob2JqKTsKCiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc291cmNlLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICBpZiAoc291cmNlW2pdICE9IHJlc3VsdFtqXSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkNITyBaQSBIT09JTllBPyIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT0shIik7Cgl9CgkKCXN0YXRpYyBieXRlW10gdG9CeXRlcyhPYmplY3Qgb2JqKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYm9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE9iamVjdE91dHB1dCBvdXQgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJvcyk7CiAgICAgICAgICAgIG91dC53cml0ZU9iamVjdChvYmopOwogICAgICAgICAgICBvdXQuZmx1c2goKTsKICAgICAgICAgICAgcmV0dXJuIGJvcy50b0J5dGVBcnJheSgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBib3MuY2xvc2UoKTsKICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZXgpIHsKICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBjbG9zZSBleGNlcHRpb24KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgT2JqZWN0IHRvT2JqZWN0KGJ5dGVbXSBieXRlcykgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYmlzID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKTsKICAgICAgICBPYmplY3RJbnB1dCBpbiA9IG51bGw7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYmlzKTsKICAgICAgICAgICAgcmV0dXJuIGluLnJlYWRPYmplY3QoKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKGluICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBpbi5jbG9zZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgewogICAgICAgICAgICAgICAgLy8gaWdub3JlIGNsb3NlIGV4Y2VwdGlvbgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9