diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a0e98de..130c8b3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ on: - ea - develop pull_request: - types: [opened, synchronize, reopened] + types: [ opened, synchronize, reopened ] jobs: build: name: Build diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java index 4630de8..d28cd86 100644 --- a/.mvn/wrapper/MavenWrapperDownloader.java +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import java.net.*; import java.io.*; import java.nio.channels.*; @@ -25,7 +26,7 @@ public class MavenWrapperDownloader { * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. */ private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" - + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; /** * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to @@ -54,7 +55,7 @@ public static void main(String args[]) { // wrapperUrl parameter. File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); String url = DEFAULT_DOWNLOAD_URL; - if(mavenWrapperPropertyFile.exists()) { + if (mavenWrapperPropertyFile.exists()) { FileInputStream mavenWrapperPropertyFileInputStream = null; try { mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); @@ -65,7 +66,7 @@ public static void main(String args[]) { System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); } finally { try { - if(mavenWrapperPropertyFileInputStream != null) { + if (mavenWrapperPropertyFileInputStream != null) { mavenWrapperPropertyFileInputStream.close(); } } catch (IOException e) { @@ -76,8 +77,8 @@ public static void main(String args[]) { System.out.println("- Downloading from: " + url); File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); - if(!outputFile.getParentFile().exists()) { - if(!outputFile.getParentFile().mkdirs()) { + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { System.out.println( "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); } diff --git a/.travis.yml b/.travis.yml index c14e3a5..632009f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,16 +32,16 @@ jobs: - arch: s390x jdk: openjdk7 # target release on big-endian machine install: - - wget -O ibmjdk7.bin -q -T 10 -t 5 https://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud/runtimes/java/7.1.4.85/linux/s390x/ibm-java-sdk-7.1-4.85-s390x-archive.bin - - echo "6a901bc0b713582a323481d5b41d0c289cbd6fbb265eefb4962080240fe59ff2 ibmjdk7.bin" | sha256sum -c - - - chmod +x ibmjdk7.bin - - echo "INSTALLER_UI=silent" > response.properties - - echo "USER_INSTALL_DIR=$PWD/ibmjdk7" >> response.properties - - echo "LICENSE_ACCEPTED=TRUE" >> response.properties - - ./ibmjdk7.bin -i silent -f response.properties - - export PATH="$PWD/ibmjdk7/bin:$PATH" - - export JAVA_HOME="$PWD/ibmjdk7" - - java -version + - wget -O ibmjdk7.bin -q -T 10 -t 5 https://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud/runtimes/java/7.1.4.85/linux/s390x/ibm-java-sdk-7.1-4.85-s390x-archive.bin + - echo "6a901bc0b713582a323481d5b41d0c289cbd6fbb265eefb4962080240fe59ff2 ibmjdk7.bin" | sha256sum -c - + - chmod +x ibmjdk7.bin + - echo "INSTALLER_UI=silent" > response.properties + - echo "USER_INSTALL_DIR=$PWD/ibmjdk7" >> response.properties + - echo "LICENSE_ACCEPTED=TRUE" >> response.properties + - ./ibmjdk7.bin -i silent -f response.properties + - export PATH="$PWD/ibmjdk7/bin:$PATH" + - export JAVA_HOME="$PWD/ibmjdk7" + - java -version cache: directories: diff --git a/README.adoc b/README.adoc index c773c70..525bf0b 100644 --- a/README.adoc +++ b/README.adoc @@ -1,4 +1,5 @@ == Zero-Allocation Hashing + Chronicle Software image:https://maven-badges.herokuapp.com/maven-central/net.openhft/zero-allocation-hashing/badge.svg[caption="",link=https://maven-badges.herokuapp.com/maven-central/net.openhft/zero-allocation-hashing] @@ -12,38 +13,31 @@ toc::[] == About -This project provides a Java API for hashing any sequence of bytes in Java, including all kinds of -primitive arrays, buffers, `CharSequence` and more. +This project provides a Java API for hashing any sequence of bytes in Java, including all kinds of primitive arrays, buffers, `CharSequence` and more. Written for Java 7+ under Apache 2.0 license. The key difference compared to other similar projects, e.g. -https://guava.dev/releases/28.1-jre/api/docs/com/google/common/hash/package-summary.html[Guava hashing], -is that this has no object allocation during the hash computation and does not use `ThreadLocal`. +https://guava.dev/releases/28.1-jre/api/docs/com/google/common/hash/package-summary.html[Guava hashing], is that this has no object allocation during the hash computation and does not use `ThreadLocal`. The implementation utilises native access where possible, but is also platform-endianness-agnostic. -This provides consistent results whatever the byte order, while only moderately affecting -performance. +This provides consistent results whatever the byte order, while only moderately affecting performance. + +Currently `long`-valued hash function interface is defined for 64-bit hash, and `long[]`-valued hash function interface for more than 64-bit hash, with the following implementations (in alphabetical order): -Currently `long`-valued hash function interface is defined for 64-bit hash, and `long[]`-valued hash -function interface for more than 64-bit hash, with the following implementations (in alphabetical -order): +- *https://github.com/google/cityhash[CityHash], version 1.1* (latest; 1.1.1 is a C++ language-specific maintenance release). - - *https://github.com/google/cityhash[CityHash], version 1.1* (latest; 1.1.1 is a C++ - language-specific maintenance release). +- Two algorithms from *https://github.com/google/farmhash[FarmHash]*: `farmhashna` (introduced in FarmHash 1.0) and `farmhashuo` (introduced in FarmHash 1.1). - - Two algorithms from *https://github.com/google/farmhash[FarmHash]*: `farmhashna` (introduced - in FarmHash 1.0) and `farmhashuo` (introduced in FarmHash 1.1). +- *https://github.com/jandrewrogers/MetroHash[MetroHash]* (using the metrohash64_2 initialization vector). - - *https://github.com/jandrewrogers/MetroHash[MetroHash]* (using the metrohash64_2 initialization vector). +- *https://github.com/aappleby/smhasher/wiki/MurmurHash3[MurmurHash3]* 128-bit and low 64-bit. - - *https://github.com/aappleby/smhasher/wiki/MurmurHash3[MurmurHash3]* 128-bit and low 64-bit. +- *https://github.com/wangyi-fudan/wyhash[wyHash]*, version 3. - - *https://github.com/wangyi-fudan/wyhash[wyHash]*, version 3. +- *https://github.com/Cyan4973/xxHash[xxHash]*. - - *https://github.com/Cyan4973/xxHash[xxHash]*. - - - *https://github.com/Cyan4973/xxHash[xxh3, xxh128]*, 128-bit and 64 bit. +- *https://github.com/Cyan4973/xxHash[xxh3, xxh128]*, 128-bit and 64 bit. These are thoroughly tested with *https://www.oracle.com/java/technologies/java-se-support-roadmap.html[LTS JDKs]* @@ -53,6 +47,7 @@ Other non-LTS JDKs from 9 should also work, but they will not be tested from hal ==== Performance Tested on Intel Core i7-4870HQ CPU @ 2.50GHz + |=== |Algorithm |Speed, GB/s |Bootstrap, ns @@ -69,15 +64,17 @@ Tested on Intel Core i7-4870HQ CPU @ 2.50GHz To sum up, ==== When to use Zero-Allocation Hashing - * You need to hash plain byte sequences, memory blocks or "flat" objects. - * You want zero-allocation and good performance (at Java scale). - * You need hashing to be agile with regards to byte ordering. + +* You need to hash plain byte sequences, memory blocks or "flat" objects. +* You want zero-allocation and good performance (at Java scale). +* You need hashing to be agile with regards to byte ordering. ==== When _not_ to use Zero-Allocation Hashing - * You need to hash POJOs whose actual data is scattered in memory between managed objects. - There is no simple way to hash these using this project, for example, classes such as: + +* You need to hash POJOs whose actual data is scattered in memory between managed objects. +There is no simple way to hash these using this project, for example, classes such as: + -[source, Java] +[source,Java] ---- class Person { String givenName, surName; @@ -85,19 +82,20 @@ To sum up, } ---- - * You need to hash byte sequences of unknown length, for the simpliest example, - `Iterator`. +* You need to hash byte sequences of unknown length, for the simpliest example, +`Iterator`. - * You need to transform the byte sequence (e.g. encode or decode it with a specific coding), - and hash the resulting byte sequence on the way without dumping it to memory. +* You need to transform the byte sequence (e.g. encode or decode it with a specific coding), and hash the resulting byte sequence on the way without dumping it to memory. ==== Java Doc + See http://javadoc.io/doc/net.openhft/zero-allocation-hashing/latest == Quick start Gradle: -[source, groovy] + +[source,groovy] ---- dependencies { implementation 'net.openhft:zero-allocation-hashing:0.16' @@ -105,7 +103,8 @@ dependencies { ---- Or Maven: -[source, xml] + +[source,xml] ---- net.openhft @@ -115,13 +114,13 @@ Or Maven: ---- In Java: -[source, Java] + +[source,Java] ---- long hash = LongHashFunction.wy_3().hashChars("hello"); ---- -See *http://javadoc.io/doc/net.openhft/zero-allocation-hashing/0.15[JavaDocs]* for more -information. +See *http://javadoc.io/doc/net.openhft/zero-allocation-hashing/0.15[JavaDocs]* for more information. == Contributions are most welcome! diff --git a/pom.xml b/pom.xml index 66c113a..79abf8a 100644 --- a/pom.xml +++ b/pom.xml @@ -15,13 +15,14 @@ ~ limitations under the License. --> - + - + net.openhft java-parent-pom 1.27ea1 - + 4.0.0 @@ -29,7 +30,8 @@ 0.27ea2-SNAPSHOT Zero-allocation Hashing Zero-allocation implementations of fast non-cryptographic hash functions - for byte sequences or blocks of memory + for byte sequences or blocks of memory + 2014 https://github.com/OpenHFT/Zero-Allocation-Hashing bundle @@ -237,7 +239,7 @@ - + maven-release-plugin 3.0.0-M4 @@ -245,7 +247,8 @@ org.apache.maven.scm maven-scm-provider-gitexe - 1.11.2 + 1.11.2 + @@ -264,7 +267,7 @@ - + org.apache.felix maven-bundle-plugin ${maven.bundle.plugin.version} @@ -317,7 +320,7 @@ 1.${project.target.release} 3.5.1 - + diff --git a/src/main/java-stub/java/lang/Math.java b/src/main/java-stub/java/lang/Math.java index b7b4cda..31dcda0 100644 --- a/src/main/java-stub/java/lang/Math.java +++ b/src/main/java-stub/java/lang/Math.java @@ -2,13 +2,15 @@ /** * Stub for JDK internal ckass java.lang.Math. - * + *

* - When crossing compiling for Java SE 7 and 8, this stub class can be used for detecting - * Math#multiplyHigh() method at runtime. + * Math#multiplyHigh() method at runtime. * - Only used methods are exported. * - In test and production runtime, the real class is loaded from boot classpath. */ public class Math { - public static long multiplyHigh(long x, long y) { throw new UnsupportedOperationException(); } + public static long multiplyHigh(long x, long y) { + throw new UnsupportedOperationException(); + } } diff --git a/src/main/java-stub/sun/misc/Unsafe.java b/src/main/java-stub/sun/misc/Unsafe.java index 14fc37e..c45a476 100644 --- a/src/main/java-stub/sun/misc/Unsafe.java +++ b/src/main/java-stub/sun/misc/Unsafe.java @@ -2,22 +2,29 @@ /** * Stub for JDK internal ckass sun.misc.Unsafe. - * + *

* - When crossing compiling for Java SE 7 and 8, this stub class can bypass compiler sun-api - * warnings. + * warnings. * - Only used methods are exported. * - In test and production runtime, the real class is loaded from boot classpath. */ public final class Unsafe { - public native Object getObject( Object o, long offset); - public native int getInt( Object o, long offset); + public native Object getObject(Object o, long offset); + + public native int getInt(Object o, long offset); + public native boolean getBoolean(Object o, long offset); - public native byte getByte( Object o, long offset); - public native short getShort( Object o, long offset); - public native char getChar( Object o, long offset); - public native long getLong( Object o, long offset); + + public native byte getByte(Object o, long offset); + + public native short getShort(Object o, long offset); + + public native char getChar(Object o, long offset); + + public native long getLong(Object o, long offset); public native long objectFieldOffset(java.lang.reflect.Field f); + public native int arrayBaseOffset(Class arrayClass); } diff --git a/src/main/java/net/openhft/hashing/Access.java b/src/main/java/net/openhft/hashing/Access.java index 18b8de4..a158f81 100644 --- a/src/main/java/net/openhft/hashing/Access.java +++ b/src/main/java/net/openhft/hashing/Access.java @@ -131,10 +131,10 @@ public static Access toNativeCharSequence() { * }} * * @param backingOrder the byte order of {@code char} reads backing - * {@code CharSequences} to access + * {@code CharSequences} to access + * @param the {@code CharSequence} subtype to access * @return the {@code Access} to {@link CharSequence}s backed by {@code char} reads made in * the specified byte order - * @param the {@code CharSequence} subtype to access * @see #toNativeCharSequence() */ @SuppressWarnings("unchecked") @@ -145,15 +145,16 @@ public static Access toCharSequence(ByteOrder backin /** * Constructor for use in subclasses. */ - protected Access() {} + protected Access() { + } /** * Reads {@code [offset, offset + 7]} bytes of the byte sequence represented by the given * {@code input} as a single {@code long} value. * - * @param input the object to access + * @param input the object to access * @param offset offset to the first byte to read within the byte sequence represented - * by the given object + * by the given object * @return eight bytes as a {@code long} value, in {@linkplain #byteOrder(Object) the expected * order} */ @@ -169,9 +170,9 @@ public long getLong(T input, long offset) { * Shortcut for {@code getInt(input, offset) & 0xFFFFFFFFL}. Could be implemented more * efficiently. * - * @param input the object to access + * @param input the object to access * @param offset offset to the first byte to read within the byte sequence represented - * by the given object + * by the given object * @return four bytes as an unsigned int value, in {@linkplain #byteOrder(Object) the expected * order} */ @@ -183,9 +184,9 @@ public long getUnsignedInt(T input, long offset) { * Reads {@code [offset, offset + 3]} bytes of the byte sequence represented by the given * {@code input} as a single {@code int} value. * - * @param input the object to access + * @param input the object to access * @param offset offset to the first byte to read within the byte sequence represented - * by the given object + * by the given object * @return four bytes as an {@code int} value, in {@linkplain #byteOrder(Object) the expected * order} */ @@ -201,9 +202,9 @@ public int getInt(T input, long offset) { * Shortcut for {@code getShort(input, offset) & 0xFFFF}. Could be implemented more * efficiently. * - * @param input the object to access + * @param input the object to access * @param offset offset to the first byte to read within the byte sequence represented - * by the given object + * by the given object * @return two bytes as an unsigned short value, in {@linkplain #byteOrder(Object) the expected * order} */ @@ -219,9 +220,9 @@ public int getUnsignedShort(T input, long offset) { * Reads {@code [offset, offset + 1]} bytes of the byte sequence represented by the given * {@code input} as a single {@code short} value, returned widened to {@code int}. * - * @param input the object to access + * @param input the object to access * @param offset offset to the first byte to read within the byte sequence represented - * by the given object + * by the given object * @return two bytes as a {@code short} value, in {@linkplain #byteOrder(Object) the expected * order}, widened to {@code int} */ @@ -232,9 +233,9 @@ public int getShort(T input, long offset) { /** * Shortcut for {@code getByte(input, offset) & 0xFF}. Could be implemented more efficiently. * - * @param input the object to access + * @param input the object to access * @param offset offset to the byte to read within the byte sequence represented - * by the given object + * by the given object * @return a byte by the given {@code offset}, interpreted as unsigned */ public int getUnsignedByte(T input, long offset) { @@ -245,21 +246,41 @@ public int getUnsignedByte(T input, long offset) { * Reads a single byte at the given {@code offset} in the byte sequence represented by the given * {@code input}, returned widened to {@code int}. * - * @param input the object to access + * @param input the object to access * @param offset offset to the byte to read within the byte sequence represented - * by the given object + * by the given object * @return a byte by the given {@code offset}, widened to {@code int} */ public abstract int getByte(T input, long offset); // short names - public long i64(final T input, final long offset) { return getLong(input, offset); } - public long u32(final T input, final long offset) { return getUnsignedInt(input, offset); } - public int i32(final T input, final long offset) { return getInt(input, offset); } - public int u16(final T input, final long offset) { return getUnsignedShort(input, offset); } - public int i16(final T input, final long offset) { return getShort(input, offset); } - public int u8(final T input, final long offset) { return getUnsignedByte(input, offset); } - public int i8(final T input, final long offset) { return getByte(input, offset); } + public long i64(final T input, final long offset) { + return getLong(input, offset); + } + + public long u32(final T input, final long offset) { + return getUnsignedInt(input, offset); + } + + public int i32(final T input, final long offset) { + return getInt(input, offset); + } + + public int u16(final T input, final long offset) { + return getUnsignedShort(input, offset); + } + + public int i16(final T input, final long offset) { + return getShort(input, offset); + } + + public int u8(final T input, final long offset) { + return getUnsignedByte(input, offset); + } + + public int i8(final T input, final long offset) { + return getByte(input, offset); + } /** * The byte order in which all multi-byte {@code getXXX()} reads from the given {@code input} @@ -274,7 +295,7 @@ public int getUnsignedByte(T input, long offset) { * Get {@code this} or the reversed access object for reading the input as fixed * byte order of {@code byteOrder}. * - * @param input the accessed object + * @param input the accessed object * @param byteOrder the byte order to be used for reading the {@code input} * @return a {@code Access} object which will read the {@code input} with the * byte order of {@code byteOrder}. @@ -294,8 +315,8 @@ public Access byteOrder(final T input, final ByteOrder byteOrder) { */ static Access newDefaultReverseAccess(final Access access) { return access instanceof ReverseAccess - ? access.reverseAccess() - : new ReverseAccess(access); + ? access.reverseAccess() + : new ReverseAccess(access); } /** @@ -303,41 +324,51 @@ static Access newDefaultReverseAccess(final Access access) { */ private static class ReverseAccess extends Access { final Access access; + private ReverseAccess(final Access access) { this.access = access; } + @Override public long getLong(final T input, final long offset) { return Long.reverseBytes(access.getLong(input, offset)); } + @Override public long getUnsignedInt(final T input, final long offset) { return Long.reverseBytes(access.getUnsignedInt(input, offset)) >>> 32; } + @Override public int getInt(final T input, final long offset) { return Integer.reverseBytes(access.getInt(input, offset)); } + @Override public int getUnsignedShort(final T input, final long offset) { return Integer.reverseBytes(access.getUnsignedShort(input, offset)) >>> 16; } + @Override public int getShort(final T input, final long offset) { return Integer.reverseBytes(access.getShort(input, offset)) >> 16; } + @Override public int getUnsignedByte(final T input, final long offset) { return access.getUnsignedByte(input, offset); } + @Override public int getByte(final T input, final long offset) { return access.getByte(input, offset); } + @Override public ByteOrder byteOrder(final T input) { return LITTLE_ENDIAN == access.byteOrder(input) ? BIG_ENDIAN : LITTLE_ENDIAN; } + @Override protected Access reverseAccess() { return access; diff --git a/src/main/java/net/openhft/hashing/ByteBufferAccess.java b/src/main/java/net/openhft/hashing/ByteBufferAccess.java index 9e36fd7..05dd0fa 100644 --- a/src/main/java/net/openhft/hashing/ByteBufferAccess.java +++ b/src/main/java/net/openhft/hashing/ByteBufferAccess.java @@ -23,7 +23,8 @@ public final class ByteBufferAccess extends Access { public static final ByteBufferAccess INSTANCE = new ByteBufferAccess(); private static final Access INSTANCE_REVERSE = Access.newDefaultReverseAccess(INSTANCE); - private ByteBufferAccess() {} + private ByteBufferAccess() { + } @Override public long getLong(ByteBuffer input, long offset) { diff --git a/src/main/java/net/openhft/hashing/CharSequenceAccess.java b/src/main/java/net/openhft/hashing/CharSequenceAccess.java index 955ef79..c13c215 100644 --- a/src/main/java/net/openhft/hashing/CharSequenceAccess.java +++ b/src/main/java/net/openhft/hashing/CharSequenceAccess.java @@ -41,7 +41,7 @@ protected static long getLong(CharSequence input, long offset, int char0Off, int char1Off, int char2Off, int char3Off, int char4Off, int delta) { final int base = ix(offset); - if (0 == ((int)offset & 1)) { + if (0 == ((int) offset & 1)) { final long char0 = input.charAt(base + char0Off); final long char1 = input.charAt(base + char1Off); final long char2 = input.charAt(base + char2Off); @@ -60,7 +60,7 @@ protected static long getLong(CharSequence input, long offset, protected static long getUnsignedInt(CharSequence input, long offset, int char0Off, int char1Off, int char2Off, int delta) { final int base = ix(offset); - if (0 == ((int)offset & 1)) { + if (0 == ((int) offset & 1)) { final long char0 = input.charAt(base + char0Off); final long char1 = input.charAt(base + char1Off); return char0 | (char1 << 16); @@ -74,13 +74,13 @@ protected static long getUnsignedInt(CharSequence input, long offset, protected static char getUnsignedShort(CharSequence input, long offset, int char1Off, int delta) { - if (0 == ((int)offset & 1)) { + if (0 == ((int) offset & 1)) { return input.charAt(ix(offset)); } else { final int base = ix(offset); final int char0 = input.charAt(base + delta) >>> 8; final int char1 = input.charAt(base + char1Off); - return (char)(char0 | (char1 << 8)); + return (char) (char0 | (char1 << 8)); } } @@ -88,7 +88,8 @@ protected static int getUnsignedByte(CharSequence input, long offset, int shift) return Primitives.unsignedByte(input.charAt(ix(offset)) >> shift); } - private CharSequenceAccess() {} + private CharSequenceAccess() { + } @Override public int getInt(CharSequence input, long offset) { @@ -97,7 +98,7 @@ public int getInt(CharSequence input, long offset) { @Override public int getShort(CharSequence input, long offset) { - return (int)(short)getUnsignedShort(input, offset); + return (int) (short) getUnsignedShort(input, offset); } @Override @@ -109,7 +110,8 @@ private static class LittleEndianCharSequenceAccess extends CharSequenceAccess { private static final CharSequenceAccess INSTANCE = new LittleEndianCharSequenceAccess(); private static final Access INSTANCE_REVERSE = Access.newDefaultReverseAccess(INSTANCE); - private LittleEndianCharSequenceAccess() {} + private LittleEndianCharSequenceAccess() { + } @Override public long getLong(CharSequence input, long offset) { @@ -146,7 +148,8 @@ private static class BigEndianCharSequenceAccess extends CharSequenceAccess { private static final CharSequenceAccess INSTANCE = new BigEndianCharSequenceAccess(); private static final Access INSTANCE_REVERSE = Access.newDefaultReverseAccess(INSTANCE); - private BigEndianCharSequenceAccess() {} + private BigEndianCharSequenceAccess() { + } @Override public long getLong(CharSequence input, long offset) { diff --git a/src/main/java/net/openhft/hashing/CityAndFarmHash_1_1.java b/src/main/java/net/openhft/hashing/CityAndFarmHash_1_1.java index 4815b72..cb94df8 100644 --- a/src/main/java/net/openhft/hashing/CityAndFarmHash_1_1.java +++ b/src/main/java/net/openhft/hashing/CityAndFarmHash_1_1.java @@ -551,7 +551,7 @@ static long uoHash64WithSeeds(Access access, T in, long off, long len, lo a += access.i64(in, off + 8); a += access.i64(in, off + 16); b += rotateRight(a, 44); - v0 = a + z1; + v0 = a + z1; v1 = b + c; long a1 = z + w1; diff --git a/src/main/java/net/openhft/hashing/CompactLatin1CharSequenceAccess.java b/src/main/java/net/openhft/hashing/CompactLatin1CharSequenceAccess.java index 3a5ea12..b917941 100644 --- a/src/main/java/net/openhft/hashing/CompactLatin1CharSequenceAccess.java +++ b/src/main/java/net/openhft/hashing/CompactLatin1CharSequenceAccess.java @@ -1,12 +1,10 @@ package net.openhft.hashing; -import java.nio.ByteOrder; - import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; + import javax.annotation.ParametersAreNonnullByDefault; +import java.nio.ByteOrder; -import static java.nio.ByteOrder.BIG_ENDIAN; import static java.nio.ByteOrder.LITTLE_ENDIAN; import static net.openhft.hashing.UnsafeAccess.BYTE_BASE; @@ -86,11 +84,12 @@ public class CompactLatin1CharSequenceAccess extends Access { private static final UnsafeAccess UNSAFE = UnsafeAccess.INSTANCE; private static final long UNSAFE_IDX_ADJUST - = BYTE_BASE * 2L + (ByteOrder.nativeOrder() == LITTLE_ENDIAN ? 1 : 0); + = BYTE_BASE * 2L + (ByteOrder.nativeOrder() == LITTLE_ENDIAN ? 1 : 0); private static final long ARRAY_IDX_ADJUST - = ByteOrder.nativeOrder() == LITTLE_ENDIAN ? 1 : 0; + = ByteOrder.nativeOrder() == LITTLE_ENDIAN ? 1 : 0; - private CompactLatin1CharSequenceAccess() {} + private CompactLatin1CharSequenceAccess() { + } @Override public long getLong(final byte[] input, final long offset) { @@ -98,7 +97,7 @@ public long getLong(final byte[] input, final long offset) { final long compact = UNSAFE.getUnsignedInt(input, byteIdx); long expanded = ((compact << 16) | compact) & 0xFFFF0000FFFFL; expanded = ((expanded << 8) | expanded) & 0xFF00FF00FF00FFL; - if (((int)offset & 1) == 1) { + if (((int) offset & 1) == 1) { return expanded << 8; } return expanded; @@ -109,7 +108,7 @@ public int getInt(final byte[] input, final long offset) { final long byteIdx = (offset + UNSAFE_IDX_ADJUST) >> 1; final int compact = UNSAFE.getShort(input, byteIdx) & 0xFFFF; final int expanded = ((compact << 8) | compact) & 0xFF00FF; - if (((int)offset & 1) == 1) { + if (((int) offset & 1) == 1) { return expanded << 8; } return expanded; @@ -119,8 +118,8 @@ public int getInt(final byte[] input, final long offset) { public long getUnsignedInt(final byte[] input, final long offset) { final long byteIdx = (offset + UNSAFE_IDX_ADJUST) >> 1; final int compact = UNSAFE.getShort(input, byteIdx) & 0xFFFF; - final long expanded = (long)(((compact << 8) | compact) & 0xFF00FF); - if (((int)offset & 1) == 1) { + final long expanded = (long) (((compact << 8) | compact) & 0xFF00FF); + if (((int) offset & 1) == 1) { return expanded << 8; } return expanded; @@ -128,41 +127,41 @@ public long getUnsignedInt(final byte[] input, final long offset) { @Override public int getShort(final byte[] input, final long offset) { - if (((int)offset & 1) == 0) { - final int byteIdx = (int)(offset >> 1); - return (int)input[byteIdx] & 0xFF; + if (((int) offset & 1) == 0) { + final int byteIdx = (int) (offset >> 1); + return (int) input[byteIdx] & 0xFF; } else { - final int byteIdx = (int)((offset + ARRAY_IDX_ADJUST) >> 1); - return (int)input[byteIdx] << 8; + final int byteIdx = (int) ((offset + ARRAY_IDX_ADJUST) >> 1); + return (int) input[byteIdx] << 8; } } @Override public int getUnsignedShort(final byte[] input, final long offset) { - if (((int)offset & 1) == 0) { - final int byteIdx = (int)(offset >> 1); - return (int)input[byteIdx] & 0xFF; + if (((int) offset & 1) == 0) { + final int byteIdx = (int) (offset >> 1); + return (int) input[byteIdx] & 0xFF; } else { - final int byteIdx = (int)((offset + ARRAY_IDX_ADJUST) >> 1); - return ((int)input[byteIdx] & 0xFF) << 8; + final int byteIdx = (int) ((offset + ARRAY_IDX_ADJUST) >> 1); + return ((int) input[byteIdx] & 0xFF) << 8; } } @Override public int getByte(final byte[] input, final long offset) { - if (ARRAY_IDX_ADJUST == ((int)offset & 1)) { + if (ARRAY_IDX_ADJUST == ((int) offset & 1)) { return 0; } else { - return (int)input[(int)(offset >> 1)]; + return (int) input[(int) (offset >> 1)]; } } @Override public int getUnsignedByte(final byte[] input, final long offset) { - if (ARRAY_IDX_ADJUST == ((int)offset & 1)) { + if (ARRAY_IDX_ADJUST == ((int) offset & 1)) { return 0; } else { - return (int)input[(int)(offset >> 1)] & 0xFF; + return (int) input[(int) (offset >> 1)] & 0xFF; } } diff --git a/src/main/java/net/openhft/hashing/DualHashFunction.java b/src/main/java/net/openhft/hashing/DualHashFunction.java index b628348..12484f8 100644 --- a/src/main/java/net/openhft/hashing/DualHashFunction.java +++ b/src/main/java/net/openhft/hashing/DualHashFunction.java @@ -1,7 +1,8 @@ package net.openhft.hashing; -import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + import javax.annotation.ParametersAreNonnullByDefault; // An internal helper class for casting LongTupleHashFunction as LongHashFunction @@ -11,6 +12,7 @@ abstract class DualHashFunction extends LongTupleHashFunction { private static final long serialVersionUID = 0L; private transient final int resultLength = newResultArray().length; + private void checkResult(final long[] result) { if (null == result) { throw new NullPointerException(); @@ -21,6 +23,7 @@ private void checkResult(final long[] result) { } protected abstract long dualHashLong(long input, @Nullable long[] result); + @Override public void hashLong(final long input, final long[] result) { checkResult(result); @@ -28,6 +31,7 @@ public void hashLong(final long input, final long[] result) { } protected abstract long dualHashInt(int input, @Nullable long[] result); + @Override public void hashInt(final int input, final long[] result) { checkResult(result); @@ -35,6 +39,7 @@ public void hashInt(final int input, final long[] result) { } protected abstract long dualHashShort(short input, @Nullable long[] result); + @Override public void hashShort(final short input, final long[] result) { checkResult(result); @@ -42,6 +47,7 @@ public void hashShort(final short input, final long[] result) { } protected abstract long dualHashChar(char input, @Nullable long[] result); + @Override public void hashChar(final char input, final long[] result) { checkResult(result); @@ -49,6 +55,7 @@ public void hashChar(final char input, final long[] result) { } protected abstract long dualHashByte(byte input, @Nullable long[] result); + @Override public void hashByte(final byte input, final long[] result) { checkResult(result); @@ -56,6 +63,7 @@ public void hashByte(final byte input, final long[] result) { } protected abstract long dualHashVoid(@Nullable long[] result); + @Override public void hashVoid(final long[] result) { checkResult(result); @@ -63,11 +71,13 @@ public void hashVoid(final long[] result) { } protected abstract long dualHash(@Nullable T input, Access access, long off, long len, @Nullable long[] result); + @Override public void hash(@Nullable final T input, final Access access, final long off, final long len, final long[] result) { checkResult(result); dualHash(input, access, off, len, result); } + @Override public long[] hash(@Nullable final T input, final Access access, final long off, final long len) { final long[] result = newResultArray(); diff --git a/src/main/java/net/openhft/hashing/HotSpotPrior7u6StringHash.java b/src/main/java/net/openhft/hashing/HotSpotPrior7u6StringHash.java index 85767c8..67b6043 100644 --- a/src/main/java/net/openhft/hashing/HotSpotPrior7u6StringHash.java +++ b/src/main/java/net/openhft/hashing/HotSpotPrior7u6StringHash.java @@ -16,8 +16,8 @@ package net.openhft.hashing; -import java.lang.reflect.Field; import javax.annotation.ParametersAreNonnullByDefault; +import java.lang.reflect.Field; @ParametersAreNonnullByDefault enum HotSpotPrior7u6StringHash implements StringHash { @@ -47,7 +47,7 @@ public long longHash(String s, LongHashFunction hashFunction, int off, int len) @Override public void hash(final String s, final LongTupleHashFunction hashFunction, - final int off, final int len, final long[] result) { + final int off, final int len, final long[] result) { final char[] value = (char[]) UnsafeAccess.UNSAFE.getObject(s, valueOffset); final int offset = UnsafeAccess.UNSAFE.getInt(s, offsetOffset); hashFunction.hashChars(value, offset + off, len, result); diff --git a/src/main/java/net/openhft/hashing/LongHashFunction.java b/src/main/java/net/openhft/hashing/LongHashFunction.java index 1245906..570d5e3 100644 --- a/src/main/java/net/openhft/hashing/LongHashFunction.java +++ b/src/main/java/net/openhft/hashing/LongHashFunction.java @@ -408,9 +408,9 @@ protected LongHashFunction() { * value is interpreted in {@linkplain ByteOrder#nativeOrder() native} byte order. For example, * the result of {@code hashLong(v)} call is identical to the result of * {@code hashLongs(new long[] {v})} call for any {@code long} value. - * - * @param input the long value to be hashed - * @return the hash code for the given long value + * + * @param input the long value to be hashed + * @return the hash code for the given long value */ public abstract long hashLong(long input); @@ -420,9 +420,9 @@ protected LongHashFunction() { * value is interpreted in {@linkplain ByteOrder#nativeOrder() native} byte order. For example, * the result of {@code hashInt(v)} call is identical to the result of * {@code hashInts(new int[] {v})} call for any {@code int} value. - * - * @param input the int value to be hashed - * @return the hash code for the given int value + * + * @param input the int value to be hashed + * @return the hash code for the given int value */ public abstract long hashInt(int input); @@ -434,9 +434,9 @@ protected LongHashFunction() { * {@code hashShorts(new short[] {v})} call for any {@code short} value. * As a consequence, {@code hashShort(v)} call produce always the same result as {@code * hashChar((char) v)}. - * - * @param input the short value to be hashed - * @return the hash code for the given short value + * + * @param input the short value to be hashed + * @return the hash code for the given short value */ public abstract long hashShort(short input); @@ -448,9 +448,9 @@ protected LongHashFunction() { * {@code hashChars(new char[] {v})} call for any {@code char} value. * As a consequence, {@code hashChar(v)} call produce always the same result as {@code * hashShort((short) v)}. - * - * @param input the char value to be hashed - * @return the hash code for the given char value + * + * @param input the char value to be hashed + * @return the hash code for the given char value */ public abstract long hashChar(char input); @@ -459,17 +459,17 @@ protected LongHashFunction() { * {@code LongHashFunction} methods that accept sequences of bytes. For example, the result of * {@code hashByte(v)} call is identical to the result of * {@code hashBytes(new byte[] {v})} call for any {@code byte} value. - * - * @param input the byte value to be hashed - * @return the hash code for the given byte value + * + * @param input the byte value to be hashed + * @return the hash code for the given byte value */ public abstract long hashByte(byte input); /** * Returns the hash code for the empty (zero-length) bytes sequence, * for example {@code hashBytes(new byte[0])}. - * - * @return the hash code for the empty bytes sequence + * + * @return the hash code for the empty bytes sequence */ public abstract long hashVoid(); @@ -500,9 +500,9 @@ private long unsafeHash(Object input, long off, long len) { * Shortcut for {@link #hashBooleans(boolean[]) hashBooleans(new boolean[] {input})}. * Note that this is not necessarily equal to {@code hashByte(input ? (byte) 1 : (byte) 0)}, * because booleans could be stored differently in this JVM. - * - * @param input the boolean value to be hashed - * @return the hash code for the given boolean value + * + * @param input the boolean value to be hashed + * @return the hash code for the given boolean value */ public long hashBoolean(boolean input) { return hashByte(input ? TRUE_BYTE_VALUE : FALSE_BYTE_VALUE); @@ -510,9 +510,9 @@ public long hashBoolean(boolean input) { /** * Shortcut for {@link #hashBooleans(boolean[], int, int) hashBooleans(input, 0, input.length)}. - * - * @param input the boolean array to be hashed - * @return the hash code for the given boolean array + * + * @param input the boolean array to be hashed + * @return the hash code for the given boolean array */ public long hashBooleans(@NotNull boolean[] input) { return unsafeHash(input, BOOLEAN_BASE, input.length); @@ -538,9 +538,9 @@ public long hashBooleans(@NotNull boolean[] input, int off, int len) { /** * Shortcut for {@link #hashBytes(byte[], int, int) hashBytes(input, 0, input.length)}. - * - * @param input the byte array to be hashed - * @return the hash code for the given byte array + * + * @param input the byte array to be hashed + * @return the hash code for the given byte array */ public long hashBytes(@NotNull byte[] input) { return unsafeHash(input, BYTE_BASE, input.length); @@ -567,9 +567,9 @@ public long hashBytes(@NotNull byte[] input, int off, int len) { /** * Shortcut for {@link #hashBytes(ByteBuffer, int, int) * hashBytes(input, input.position(), input.remaining())}. - * - * @param input the ByteBuffer to be hashed - * @return the hash code for the given ByteBuffer + * + * @param input the ByteBuffer to be hashed + * @return the hash code for the given ByteBuffer */ public long hashBytes(ByteBuffer input) { return hashByteBuffer(input, input.position(), input.remaining()); @@ -622,9 +622,9 @@ public long hashMemory(long address, long len) { /** * Shortcut for {@link #hashChars(char[], int, int) hashChars(input, 0, input.length)}. - * - * @param input the char array to be hashed - * @return the hash code for the given char array + * + * @param input the char array to be hashed + * @return the hash code for the given char array */ public long hashChars(@NotNull char[] input) { return unsafeHash(input, CHAR_BASE, input.length * 2L); @@ -652,9 +652,9 @@ public long hashChars(@NotNull char[] input, int off, int len) { /** * Shortcut for {@link #hashChars(String, int, int) hashChars(input, 0, input.length())}. - * - * @param input the String to be hashed - * @return the hash code for the given String + * + * @param input the String to be hashed + * @return the hash code for the given String */ public long hashChars(@NotNull String input) { return VALID_STRING_HASH.longHash(input, this, 0, input.length()); @@ -682,9 +682,9 @@ public long hashChars(@NotNull String input, int off, int len) { /** * Shortcut for {@link #hashChars(StringBuilder, int, int) hashChars(input, 0, input.length())}. - * - * @param input the StringBuilder to be hashed - * @return the hash code for the given StringBuilder + * + * @param input the StringBuilder to be hashed + * @return the hash code for the given StringBuilder */ public long hashChars(@NotNull StringBuilder input) { return hashNativeChars(input); @@ -710,33 +710,33 @@ public long hashChars(@NotNull StringBuilder input, int off, int len) { return hashNativeChars(input, off, len); } -/** - * Returns the hash code for the entire CharSequence. - * - * @param input the CharSequence to be hashed - * @return the hash code for the given CharSequence - */ + /** + * Returns the hash code for the entire CharSequence. + * + * @param input the CharSequence to be hashed + * @return the hash code for the given CharSequence + */ long hashNativeChars(CharSequence input) { return hashNativeChars(input, 0, input.length()); } -/** - * Returns the hash code for a subsequence of the given CharSequence. - * - * @param input the CharSequence to be hashed - * @param off the index of the first char in the subsequence - * @param len the length of the subsequence - * @return the hash code for the specified subsequence of the given CharSequence - */ + /** + * Returns the hash code for a subsequence of the given CharSequence. + * + * @param input the CharSequence to be hashed + * @param off the index of the first char in the subsequence + * @param len the length of the subsequence + * @return the hash code for the specified subsequence of the given CharSequence + */ long hashNativeChars(CharSequence input, int off, int len) { return hash(input, nativeCharSequenceAccess(), off * 2L, len * 2L); } /** * Shortcut for {@link #hashShorts(short[], int, int) hashShorts(input, 0, input.length)}. - * - * @param input the short array to be hashed - * @return the hash code for the given short array + * + * @param input the short array to be hashed + * @return the hash code for the given short array */ public long hashShorts(@NotNull short[] input) { return unsafeHash(input, SHORT_BASE, input.length * 2L); @@ -764,9 +764,9 @@ public long hashShorts(@NotNull short[] input, int off, int len) { /** * Shortcut for {@link #hashInts(int[], int, int) hashInts(input, 0, input.length)}. - * - * @param input the integer array to be hashed - * @return the hash code for the given integer array + * + * @param input the integer array to be hashed + * @return the hash code for the given integer array */ public long hashInts(@NotNull int[] input) { return unsafeHash(input, INT_BASE, input.length * 4L); @@ -794,9 +794,9 @@ public long hashInts(@NotNull int[] input, int off, int len) { /** * Shortcut for {@link #hashLongs(long[], int, int) hashLongs(input, 0, input.length)}. - * - * @param input the long array to be hashed - * @return the hash code for the given long array + * + * @param input the long array to be hashed + * @return the hash code for the given long array */ public long hashLongs(@NotNull long[] input) { return unsafeHash(input, LONG_BASE, input.length * 8L); diff --git a/src/main/java/net/openhft/hashing/LongTupleHashFunction.java b/src/main/java/net/openhft/hashing/LongTupleHashFunction.java index 0639f72..e33e3c4 100644 --- a/src/main/java/net/openhft/hashing/LongTupleHashFunction.java +++ b/src/main/java/net/openhft/hashing/LongTupleHashFunction.java @@ -2,16 +2,17 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; import sun.nio.ch.DirectBuffer; +import javax.annotation.ParametersAreNonnullByDefault; import java.io.Serializable; import java.nio.ByteBuffer; import java.nio.ByteOrder; import static net.openhft.hashing.CharSequenceAccess.nativeCharSequenceAccess; import static net.openhft.hashing.UnsafeAccess.*; -import static net.openhft.hashing.Util.*; +import static net.openhft.hashing.Util.VALID_STRING_HASH; +import static net.openhft.hashing.Util.checkArrayOffs; /** * Tuple hash function producing more than 64-bit hash code into a result array of type @@ -121,7 +122,8 @@ public static LongTupleHashFunction xx128(final long seed) { /** * Constructor for use in subclasses. */ - protected LongTupleHashFunction() {} + protected LongTupleHashFunction() { + } // Public API // @@ -155,7 +157,7 @@ public long[] newResultArray() { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} */ public abstract void hashLong(long input, long[] result); @@ -185,7 +187,7 @@ public long[] hashLong(final long input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} */ public abstract void hashInt(int input, long[] result); @@ -215,7 +217,7 @@ public long[] hashInt(final int input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} */ public abstract void hashShort(short input, long[] result); @@ -245,7 +247,7 @@ public long[] hashShort(final short input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} */ public abstract void hashChar(char input, long[] result); @@ -274,7 +276,7 @@ public long[] hashChar(final char input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} */ public abstract void hashByte(byte input, long[] result); @@ -301,7 +303,7 @@ public long[] hashByte(final byte input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} */ public abstract void hashVoid(long[] result); @@ -332,15 +334,15 @@ public long[] hashVoid() { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the object to read bytes from + * @param input the object to read bytes from * @param access access which defines the abstraction of the given input * as ordered byte sequence - * @param off offset to the first byte of the subsequence to hash - * @param len length of the subsequence to hash + * @param off offset to the first byte of the subsequence to hash + * @param len length of the subsequence to hash * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @param the type of the input - * @throws NullPointerException if {@code result == null} + * @param the type of the input + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} */ public abstract void hash(@Nullable T input, Access access, @@ -413,12 +415,12 @@ public long[] hashBooleans(final boolean[] input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the array to read data from - * @param off index of the first {@code boolean} in the subsequence to hash - * @param len length of the subsequence to hash + * @param input the array to read data from + * @param off index of the first {@code boolean} in the subsequence to hash + * @param len length of the subsequence to hash * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -473,12 +475,12 @@ public long[] hashBytes(final byte[] input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the array to read data from - * @param off index of the first {@code byte} in the subsequence to hash - * @param len length of the subsequence to hash + * @param input the array to read data from + * @param off index of the first {@code byte} in the subsequence to hash + * @param len length of the subsequence to hash * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -536,12 +538,12 @@ public long[] hashBytes(final ByteBuffer input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the buffer to read bytes from - * @param off index of the first {@code byte} in the subsequence to hash - * @param len length of the subsequence to hash + * @param input the buffer to read bytes from + * @param off index of the first {@code byte} in the subsequence to hash + * @param len length of the subsequence to hash * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -577,10 +579,10 @@ public long[] hashBytes(final ByteBuffer input, final int off, final int len) { * {@code result.length > newResultArray().length]}. * * @param address the address of the first byte to hash - * @param len length of the byte sequence to hash - * @param result the container array for storing the hash results, - * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @param len length of the byte sequence to hash + * @param result the container array for storing the hash results, + * should be alloced by {@link #newResultArray} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -633,13 +635,13 @@ public long[] hashChars(final char[] input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the array to read data from - * @param off index of the first {@code char} in the subsequence to hash - * @param len length of the subsequence to hash, in chars (i.e. the length of the bytes sequence - * to hash is {@code len * 2L}) + * @param input the array to read data from + * @param off index of the first {@code char} in the subsequence to hash + * @param len length of the subsequence to hash, in chars (i.e. the length of the bytes sequence + * to hash is {@code len * 2L}) * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -695,13 +697,13 @@ public long[] hashChars(final String input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the string which bytes to hash - * @param off index of the first {@code char} in the subsequence to hash - * @param len length of the subsequence to hash, in chars (i.e. the length of the bytes sequence - * to hash is {@code len * 2L}) + * @param input the string which bytes to hash + * @param off index of the first {@code char} in the subsequence to hash + * @param len length of the subsequence to hash, in chars (i.e. the length of the bytes sequence + * to hash is {@code len * 2L}) * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -756,13 +758,13 @@ public long[] hashChars(final T input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the char sequence which bytes to hash - * @param off index of the first {@code char} in the subsequence to hash - * @param len length of the subsequence to hash, in chars (i.e. the length of the bytes sequence - * to hash is {@code len * 2L}) + * @param input the char sequence which bytes to hash + * @param off index of the first {@code char} in the subsequence to hash + * @param len length of the subsequence to hash, in chars (i.e. the length of the bytes sequence + * to hash is {@code len * 2L}) * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -818,13 +820,13 @@ public long[] hashShorts(final short[] input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the array to read data from - * @param off index of the first {@code short} in the subsequence to hash - * @param len length of the subsequence to hash, in shorts (i.e. the length of the bytes - * sequence to hash is {@code len * 2L}) + * @param input the array to read data from + * @param off index of the first {@code short} in the subsequence to hash + * @param len length of the subsequence to hash, in shorts (i.e. the length of the bytes + * sequence to hash is {@code len * 2L}) * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -879,13 +881,13 @@ public long[] hashInts(final int[] input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the array to read data from - * @param off index of the first {@code int} in the subsequence to hash - * @param len length of the subsequence to hash, in ints (i.e. the length of the bytes sequence - * to hash is {@code len * 4L}) + * @param input the array to read data from + * @param off index of the first {@code int} in the subsequence to hash + * @param len length of the subsequence to hash, in ints (i.e. the length of the bytes sequence + * to hash is {@code len * 4L}) * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} @@ -940,13 +942,13 @@ public long[] hashLongs(final long[] input) { * elements of the array will not be touched when * {@code result.length > newResultArray().length]}. * - * @param input the array to read data from - * @param off index of the first {@code long} in the subsequence to hash - * @param len length of the subsequence to hash, in longs (i.e. the length of the bytes sequence - * to hash is {@code len * 8L}) + * @param input the array to read data from + * @param off index of the first {@code long} in the subsequence to hash + * @param len length of the subsequence to hash, in longs (i.e. the length of the bytes sequence + * to hash is {@code len * 8L}) * @param result the container array for storing the hash results, * should be alloced by {@link #newResultArray} - * @throws NullPointerException if {@code result == null} + * @throws NullPointerException if {@code result == null} * @throws IllegalArgumentException if {@code result.length < newResultArray().length} * @throws IllegalArgumentException if {@code off < 0} or {@code off + len > input.length} * or {@code len < 0} diff --git a/src/main/java/net/openhft/hashing/Maths.java b/src/main/java/net/openhft/hashing/Maths.java index 673494f..a588bfa 100644 --- a/src/main/java/net/openhft/hashing/Maths.java +++ b/src/main/java/net/openhft/hashing/Maths.java @@ -25,6 +25,7 @@ class Maths { public static long unsignedLongMulXorFold(final long lhs, final long rhs) { return INSTANCE.unsignedLongMulXorFoldImp(lhs, rhs); } + public static long unsignedLongMulHigh(final long lhs, final long rhs) { return INSTANCE.unsignedLongMulHighImp(lhs, rhs); } @@ -82,6 +83,7 @@ long unsignedLongMulXorFoldImp(final long lhs, final long rhs) { final long lower = lhs * rhs; return lower ^ upper; } + @Override long unsignedLongMulHighImp(final long lhs, final long rhs) { return invokeExact(lhs, rhs) + ((lhs >> 63) & rhs) + ((rhs >> 63) & lhs); diff --git a/src/main/java/net/openhft/hashing/ModernCompactStringHash.java b/src/main/java/net/openhft/hashing/ModernCompactStringHash.java index 6cc97ec..ac30884 100644 --- a/src/main/java/net/openhft/hashing/ModernCompactStringHash.java +++ b/src/main/java/net/openhft/hashing/ModernCompactStringHash.java @@ -1,9 +1,9 @@ package net.openhft.hashing; -import java.lang.reflect.Field; import javax.annotation.ParametersAreNonnullByDefault; -import static net.openhft.hashing.UnsafeAccess.*; -import static net.openhft.hashing.Util.*; +import java.lang.reflect.Field; + +import static net.openhft.hashing.Util.checkArrayOffs; @ParametersAreNonnullByDefault enum ModernCompactStringHash implements StringHash { @@ -12,7 +12,7 @@ enum ModernCompactStringHash implements StringHash { private static final long valueOffset; private static final boolean enableCompactStrings; private static final Access compactLatin1Access - = CompactLatin1CharSequenceAccess.INSTANCE; + = CompactLatin1CharSequenceAccess.INSTANCE; static { try { @@ -28,7 +28,7 @@ enum ModernCompactStringHash implements StringHash { @Override public long longHash(final String s, final LongHashFunction hashFunction, - final int off, final int len) { + final int off, final int len) { final int sl = s.length(); if (len <= 0 || sl <= 0) { checkArrayOffs(sl, off, len); // check as chars @@ -38,16 +38,16 @@ public long longHash(final String s, final LongHashFunction hashFunction, if (enableCompactStrings && sl == value.length) { checkArrayOffs(sl, off, len); // check as chars // 'off' and 'len' are passed as bytes - return hashFunction.hash(value, compactLatin1Access, (long)off*2L, (long)len*2L); + return hashFunction.hash(value, compactLatin1Access, (long) off * 2L, (long) len * 2L); } else { - return hashFunction.hashBytes(value, off*2, len*2); // hash as bytes + return hashFunction.hashBytes(value, off * 2, len * 2); // hash as bytes } } } @Override public void hash(final String s, final LongTupleHashFunction hashFunction, - final int off, final int len, final long[] result) { + final int off, final int len, final long[] result) { final int sl = s.length(); if (len <= 0 || sl <= 0) { checkArrayOffs(sl, off, len); // check as chars @@ -57,9 +57,9 @@ public void hash(final String s, final LongTupleHashFunction hashFunction, if (enableCompactStrings && sl == value.length) { checkArrayOffs(sl, off, len); // check as chars // 'off' and 'len' are passed as bytes - hashFunction.hash(value, compactLatin1Access, (long)off*2L, (long)len*2L, result); + hashFunction.hash(value, compactLatin1Access, (long) off * 2L, (long) len * 2L, result); } else { - hashFunction.hashBytes(value, off*2, len*2, result); // hash as bytes + hashFunction.hashBytes(value, off * 2, len * 2, result); // hash as bytes } } } diff --git a/src/main/java/net/openhft/hashing/ModernHotSpotStringHash.java b/src/main/java/net/openhft/hashing/ModernHotSpotStringHash.java index 0f58eb7..b5d71fa 100644 --- a/src/main/java/net/openhft/hashing/ModernHotSpotStringHash.java +++ b/src/main/java/net/openhft/hashing/ModernHotSpotStringHash.java @@ -16,8 +16,8 @@ package net.openhft.hashing; -import java.lang.reflect.Field; import javax.annotation.ParametersAreNonnullByDefault; +import java.lang.reflect.Field; @ParametersAreNonnullByDefault enum ModernHotSpotStringHash implements StringHash { @@ -42,7 +42,7 @@ public long longHash(String s, LongHashFunction hashFunction, int off, int len) @Override public void hash(final String s, final LongTupleHashFunction hashFunction, - final int off, final int len, final long[] result) { + final int off, final int len, final long[] result) { final char[] value = (char[]) UnsafeAccess.UNSAFE.getObject(s, valueOffset); hashFunction.hashChars(value, off, len, result); } diff --git a/src/main/java/net/openhft/hashing/MurmurHash_3.java b/src/main/java/net/openhft/hashing/MurmurHash_3.java index 85b4ba8..65a6b37 100644 --- a/src/main/java/net/openhft/hashing/MurmurHash_3.java +++ b/src/main/java/net/openhft/hashing/MurmurHash_3.java @@ -18,6 +18,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; + import javax.annotation.ParametersAreNonnullByDefault; import static java.nio.ByteOrder.LITTLE_ENDIAN; @@ -230,6 +231,7 @@ private Object readResolve() { public int bitsLength() { return 128; } + @Override @NotNull public long[] newResultArray() { @@ -291,6 +293,7 @@ public long dualHash(@Nullable T input, Access access, long off, long len static LongTupleHashFunction asLongTupleHashFunctionWithoutSeed() { return AsLongTupleHashFunction.SEEDLESS_INSTANCE; } + @NotNull static LongHashFunction asLongHashFunctionWithoutSeed() { return AsLongTupleHashFunction.SEEDLESS_INSTANCE_LONG; @@ -335,6 +338,7 @@ public long dualHashVoid(@Nullable long[] result) { static LongTupleHashFunction asLongTupleHashFunctionWithSeed(long seed) { return new AsLongTupleHashFunctionSeeded(seed); } + @NotNull static LongHashFunction asLongHashFunctionWithSeed(long seed) { return new AsLongTupleHashFunctionSeeded(seed).asLongHashFunction(); diff --git a/src/main/java/net/openhft/hashing/Primitives.java b/src/main/java/net/openhft/hashing/Primitives.java index 32b79e8..3ef96a7 100644 --- a/src/main/java/net/openhft/hashing/Primitives.java +++ b/src/main/java/net/openhft/hashing/Primitives.java @@ -21,7 +21,8 @@ final class Primitives { - private Primitives() {} + private Primitives() { + } static final boolean NATIVE_LITTLE_ENDIAN = nativeOrder() == LITTLE_ENDIAN; @@ -40,26 +41,71 @@ static int unsignedByte(int b) { private static final ByteOrderHelper H2LE = NATIVE_LITTLE_ENDIAN ? new ByteOrderHelper() : new ByteOrderHelperReverse(); private static final ByteOrderHelper H2BE = NATIVE_LITTLE_ENDIAN ? new ByteOrderHelperReverse() : new ByteOrderHelper(); - static long nativeToLittleEndian(final long v) { return H2LE.adjustByteOrder(v); } - static int nativeToLittleEndian(final int v) { return H2LE.adjustByteOrder(v); } - static short nativeToLittleEndian(final short v) { return H2LE.adjustByteOrder(v); } - static char nativeToLittleEndian(final char v) { return H2LE.adjustByteOrder(v); } + static long nativeToLittleEndian(final long v) { + return H2LE.adjustByteOrder(v); + } + + static int nativeToLittleEndian(final int v) { + return H2LE.adjustByteOrder(v); + } + + static short nativeToLittleEndian(final short v) { + return H2LE.adjustByteOrder(v); + } + + static char nativeToLittleEndian(final char v) { + return H2LE.adjustByteOrder(v); + } + + static long nativeToBigEndian(final long v) { + return H2BE.adjustByteOrder(v); + } + + static int nativeToBigEndian(final int v) { + return H2BE.adjustByteOrder(v); + } + + static short nativeToBigEndian(final short v) { + return H2BE.adjustByteOrder(v); + } - static long nativeToBigEndian(final long v) { return H2BE.adjustByteOrder(v); } - static int nativeToBigEndian(final int v) { return H2BE.adjustByteOrder(v); } - static short nativeToBigEndian(final short v) { return H2BE.adjustByteOrder(v); } - static char nativeToBigEndian(final char v) { return H2BE.adjustByteOrder(v); } + static char nativeToBigEndian(final char v) { + return H2BE.adjustByteOrder(v); + } private static class ByteOrderHelper { - long adjustByteOrder(final long v) { return v; } - int adjustByteOrder(final int v) { return v; } - short adjustByteOrder(final short v) { return v; } - char adjustByteOrder(final char v) { return v; } + long adjustByteOrder(final long v) { + return v; + } + + int adjustByteOrder(final int v) { + return v; + } + + short adjustByteOrder(final short v) { + return v; + } + + char adjustByteOrder(final char v) { + return v; + } } + private static class ByteOrderHelperReverse extends ByteOrderHelper { - long adjustByteOrder(final long v) { return Long.reverseBytes(v); } - int adjustByteOrder(final int v) { return Integer.reverseBytes(v); } - short adjustByteOrder(final short v) { return Short.reverseBytes(v); } - char adjustByteOrder(final char v) { return Character.reverseBytes(v); } + long adjustByteOrder(final long v) { + return Long.reverseBytes(v); + } + + int adjustByteOrder(final int v) { + return Integer.reverseBytes(v); + } + + short adjustByteOrder(final short v) { + return Short.reverseBytes(v); + } + + char adjustByteOrder(final char v) { + return Character.reverseBytes(v); + } } } diff --git a/src/main/java/net/openhft/hashing/StringHash.java b/src/main/java/net/openhft/hashing/StringHash.java index 6262a75..0137eac 100644 --- a/src/main/java/net/openhft/hashing/StringHash.java +++ b/src/main/java/net/openhft/hashing/StringHash.java @@ -21,5 +21,6 @@ @ParametersAreNonnullByDefault interface StringHash { long longHash(String s, LongHashFunction hashFunction, int off, int len); + void hash(String s, LongTupleHashFunction hashFunction, int off, int len, long[] result); } diff --git a/src/main/java/net/openhft/hashing/UnknownJvmStringHash.java b/src/main/java/net/openhft/hashing/UnknownJvmStringHash.java index 7297ef1..2e19f68 100644 --- a/src/main/java/net/openhft/hashing/UnknownJvmStringHash.java +++ b/src/main/java/net/openhft/hashing/UnknownJvmStringHash.java @@ -29,7 +29,7 @@ public long longHash(String s, LongHashFunction hashFunction, int off, int len) @Override public void hash(final String s, final LongTupleHashFunction hashFunction, - final int off, final int len, final long[] result) { + final int off, final int len, final long[] result) { LongTupleHashFunction.hashNativeChars(hashFunction, s, off, len, result); } } diff --git a/src/main/java/net/openhft/hashing/UnsafeAccess.java b/src/main/java/net/openhft/hashing/UnsafeAccess.java index 61a8e9a..3197cce 100644 --- a/src/main/java/net/openhft/hashing/UnsafeAccess.java +++ b/src/main/java/net/openhft/hashing/UnsafeAccess.java @@ -16,9 +16,10 @@ package net.openhft.hashing; +import sun.misc.Unsafe; + import java.lang.reflect.Field; import java.nio.ByteOrder; -import sun.misc.Unsafe; import static net.openhft.hashing.Primitives.*; @@ -28,8 +29,8 @@ public class UnsafeAccess extends Access { // for test only static final UnsafeAccess OLD_INSTANCE = NATIVE_LITTLE_ENDIAN - ? new OldUnsafeAccessLittleEndian() - : new OldUnsafeAccessBigEndian(); + ? new OldUnsafeAccessLittleEndian() + : new OldUnsafeAccessBigEndian(); static final Unsafe UNSAFE; @@ -56,10 +57,10 @@ public class UnsafeAccess extends Access { INT_BASE = UNSAFE.arrayBaseOffset(int[].class); LONG_BASE = UNSAFE.arrayBaseOffset(long[].class); - TRUE_BYTE_VALUE = (byte)UNSAFE.getInt(new boolean[] {true, true, true, true}, - BOOLEAN_BASE); - FALSE_BYTE_VALUE = (byte)UNSAFE.getInt(new boolean[] {false, false, false, false}, - BOOLEAN_BASE); + TRUE_BYTE_VALUE = (byte) UNSAFE.getInt(new boolean[]{true, true, true, true}, + BOOLEAN_BASE); + FALSE_BYTE_VALUE = (byte) UNSAFE.getInt(new boolean[]{false, false, false, false}, + BOOLEAN_BASE); } catch (final Exception e) { throw new AssertionError(e); } @@ -76,7 +77,8 @@ public class UnsafeAccess extends Access { INSTANCE_NON_NATIVE = Access.newDefaultReverseAccess(INSTANCE); } - private UnsafeAccess() {} + private UnsafeAccess() { + } @Override public long getLong(Object input, long offset) { @@ -138,12 +140,12 @@ public int getByte(final Object input, final long offset) { private static class OldUnsafeAccessBigEndian extends UnsafeAccess { @Override public int getShort(final Object input, final long offset) { - return (int)(short)UNSAFE.getInt(input, offset - 2); + return (int) (short) UNSAFE.getInt(input, offset - 2); } @Override public int getByte(final Object input, final long offset) { - return (int)(byte)UNSAFE.getInt(input, offset - 3); + return (int) (byte) UNSAFE.getInt(input, offset - 3); } } } diff --git a/src/main/java/net/openhft/hashing/Util.java b/src/main/java/net/openhft/hashing/Util.java index ae3b1ae..8d55607 100644 --- a/src/main/java/net/openhft/hashing/Util.java +++ b/src/main/java/net/openhft/hashing/Util.java @@ -1,11 +1,9 @@ package net.openhft.hashing; -import java.nio.ByteBuffer; -import sun.nio.ch.DirectBuffer; - import org.jetbrains.annotations.NotNull; +import sun.nio.ch.DirectBuffer; -import static java.nio.ByteOrder.*; +import java.nio.ByteBuffer; final class Util { @@ -22,6 +20,7 @@ final class Util { static private boolean isHotSpotVM(@NotNull final String name) { return name.contains("HotSpot") || name.contains("OpenJDK"); } + static private boolean isJ9VM(@NotNull final String name) { return name.contains("Eclipse OpenJ9") || name.contains("IBM J9"); } @@ -32,7 +31,8 @@ static private boolean isZing(@NotNull final String name) { @NotNull static final StringHash VALID_STRING_HASH; - static { + + static { StringHash stringHash = null; try { final String vmName = System.getProperty("java.vm.name"); @@ -70,6 +70,6 @@ static void checkArrayOffs(final int arrayLength, final int off, final int len) } static long getDirectBufferAddress(@NotNull final ByteBuffer buff) { - return ((DirectBuffer)buff).address(); + return ((DirectBuffer) buff).address(); } } diff --git a/src/main/java/net/openhft/hashing/WyHash.java b/src/main/java/net/openhft/hashing/WyHash.java index 809250c..eaefb66 100644 --- a/src/main/java/net/openhft/hashing/WyHash.java +++ b/src/main/java/net/openhft/hashing/WyHash.java @@ -24,8 +24,8 @@ private static long _wymum(final long lhs, final long rhs) { private static long _wyr3(final Access access, T in, final long index, long k) { return ((long) access.u8(in, index) << 16) | - ((long) access.u8(in, index + (k >>> 1)) << 8) | - ((long) access.u8(in, index + k - 1)); + ((long) access.u8(in, index + (k >>> 1)) << 8) | + ((long) access.u8(in, index + k - 1)); } private static long u64Rorate32(final Access access, T in, final long index) { @@ -34,96 +34,97 @@ private static long u64Rorate32(final Access access, T in, final long ind /** * - * @param seed seed for the hash - * @param input the type wrapped by the Access, ex. byte[], ByteBuffer, etc. + * @param seed seed for the hash + * @param input the type wrapped by the Access, ex. byte[], ByteBuffer, etc. * @param access class wrapping optimized access pattern to the input - * @param off offset to the input + * @param off offset to the input * @param length length to read from input - * @param byte[], ByteBuffer, etc. + * @param byte[], ByteBuffer, etc. * @return hash result */ static long wyHash64(long seed, T input, Access access, long off, long length) { - if(length <= 0) + if (length <= 0) return 0; - else if(length<4) - return _wymum(_wymum(_wyr3(access, input,off,length)^seed^_wyp0, - seed^_wyp1)^seed,length^_wyp4); - else if(length<=8) + else if (length < 4) + return _wymum(_wymum(_wyr3(access, input, off, length) ^ seed ^ _wyp0, + seed ^ _wyp1) ^ seed, length ^ _wyp4); + else if (length <= 8) return _wymum(_wymum(access.u32(input, off) ^ seed ^ _wyp0, - access.u32(input, off + length - 4) ^ seed ^ _wyp1) - ^ seed, length ^ _wyp4); - else if(length<=16) - return _wymum(_wymum(u64Rorate32(access, input,off)^seed^_wyp0, - u64Rorate32(access, input,off+length-8)^seed^_wyp1) - ^seed,length^_wyp4); - else if(length<=24) - return _wymum(_wymum(u64Rorate32(access, input,off)^seed^_wyp0, - u64Rorate32(access, input,off+8)^seed^_wyp1)^ - _wymum(u64Rorate32(access, input,off+length-8) - ^seed^_wyp2,seed^_wyp3),length^_wyp4); - else if(length<=32) - return _wymum(_wymum(u64Rorate32(access, input,off)^seed^_wyp0, - u64Rorate32(access, input,off+8)^seed^_wyp1) - ^_wymum(u64Rorate32(access, input,off+16)^seed^_wyp2, - u64Rorate32(access, input,off+length-8)^seed^_wyp3),length^_wyp4); - long see1=seed; long i=length, p=off; - for(;i>256;i-=256,p+=256){ + access.u32(input, off + length - 4) ^ seed ^ _wyp1) + ^ seed, length ^ _wyp4); + else if (length <= 16) + return _wymum(_wymum(u64Rorate32(access, input, off) ^ seed ^ _wyp0, + u64Rorate32(access, input, off + length - 8) ^ seed ^ _wyp1) + ^ seed, length ^ _wyp4); + else if (length <= 24) + return _wymum(_wymum(u64Rorate32(access, input, off) ^ seed ^ _wyp0, + u64Rorate32(access, input, off + 8) ^ seed ^ _wyp1) ^ + _wymum(u64Rorate32(access, input, off + length - 8) + ^ seed ^ _wyp2, seed ^ _wyp3), length ^ _wyp4); + else if (length <= 32) + return _wymum(_wymum(u64Rorate32(access, input, off) ^ seed ^ _wyp0, + u64Rorate32(access, input, off + 8) ^ seed ^ _wyp1) + ^ _wymum(u64Rorate32(access, input, off + 16) ^ seed ^ _wyp2, + u64Rorate32(access, input, off + length - 8) ^ seed ^ _wyp3), length ^ _wyp4); + long see1 = seed; + long i = length, p = off; + for (; i > 256; i -= 256, p += 256) { seed = _wymum(access.i64(input, p) ^ seed ^ _wyp0, - access.i64(input, p + 8) ^ seed ^ _wyp1) ^ - _wymum(access.i64(input, p + 16) ^ seed ^ _wyp2, - access.i64(input, p + 24) ^ seed ^ _wyp3); + access.i64(input, p + 8) ^ seed ^ _wyp1) ^ + _wymum(access.i64(input, p + 16) ^ seed ^ _wyp2, + access.i64(input, p + 24) ^ seed ^ _wyp3); see1 = _wymum(access.i64(input, p + 32) ^ see1 ^ _wyp1, - access.i64(input, p + 40) ^ see1 ^ _wyp2) ^ - _wymum(access.i64(input, p + 48) ^ see1 ^ _wyp3, - access.i64(input, p + 56) ^ see1 ^ _wyp0); + access.i64(input, p + 40) ^ see1 ^ _wyp2) ^ + _wymum(access.i64(input, p + 48) ^ see1 ^ _wyp3, + access.i64(input, p + 56) ^ see1 ^ _wyp0); seed = _wymum(access.i64(input, p + 64) ^ seed ^ _wyp0, - access.i64(input, p + 72) ^ seed ^ _wyp1) ^ - _wymum(access.i64(input, p + 80) ^ seed ^ _wyp2, - access.i64(input, p + 88) ^ seed ^ _wyp3); + access.i64(input, p + 72) ^ seed ^ _wyp1) ^ + _wymum(access.i64(input, p + 80) ^ seed ^ _wyp2, + access.i64(input, p + 88) ^ seed ^ _wyp3); see1 = _wymum(access.i64(input, p + 96) ^ see1 ^ _wyp1, - access.i64(input, p + 104) ^ see1 ^ _wyp2) ^ - _wymum(access.i64(input, p + 112) ^ see1 ^ _wyp3, - access.i64(input, p + 120) ^ see1 ^ _wyp0); + access.i64(input, p + 104) ^ see1 ^ _wyp2) ^ + _wymum(access.i64(input, p + 112) ^ see1 ^ _wyp3, + access.i64(input, p + 120) ^ see1 ^ _wyp0); seed = _wymum(access.i64(input, p + 128) ^ seed ^ _wyp0, - access.i64(input, p + 136) ^ seed ^ _wyp1) ^ - _wymum(access.i64(input, p + 144) ^ seed ^ _wyp2, - access.i64(input, p + 152) ^ seed ^ _wyp3); + access.i64(input, p + 136) ^ seed ^ _wyp1) ^ + _wymum(access.i64(input, p + 144) ^ seed ^ _wyp2, + access.i64(input, p + 152) ^ seed ^ _wyp3); see1 = _wymum(access.i64(input, p + 160) ^ see1 ^ _wyp1, - access.i64(input, p + 168) ^ see1 ^ _wyp2) ^ - _wymum(access.i64(input, p + 176) ^ see1 ^ _wyp3, - access.i64(input, p + 184) ^ see1 ^ _wyp0); + access.i64(input, p + 168) ^ see1 ^ _wyp2) ^ + _wymum(access.i64(input, p + 176) ^ see1 ^ _wyp3, + access.i64(input, p + 184) ^ see1 ^ _wyp0); seed = _wymum(access.i64(input, p + 192) ^ seed ^ _wyp0, - access.i64(input, p + 200) ^ seed ^ _wyp1) ^ - _wymum(access.i64(input, p + 208) ^ seed ^ _wyp2, - access.i64(input, p + 216) ^ seed ^ _wyp3); + access.i64(input, p + 200) ^ seed ^ _wyp1) ^ + _wymum(access.i64(input, p + 208) ^ seed ^ _wyp2, + access.i64(input, p + 216) ^ seed ^ _wyp3); see1 = _wymum(access.i64(input, p + 224) ^ see1 ^ _wyp1, - access.i64(input, p + 232) ^ see1 ^ _wyp2) ^ - _wymum(access.i64(input, p + 240) ^ see1 ^ _wyp3, - access.i64(input, p + 248) ^ see1 ^ _wyp0); + access.i64(input, p + 232) ^ see1 ^ _wyp2) ^ + _wymum(access.i64(input, p + 240) ^ see1 ^ _wyp3, + access.i64(input, p + 248) ^ see1 ^ _wyp0); } for (; i > 32; i -= 32, p += 32) { seed = _wymum(access.i64(input, p) ^ seed ^ _wyp0, - access.i64(input, p + 8) ^ seed ^ _wyp1); + access.i64(input, p + 8) ^ seed ^ _wyp1); see1 = _wymum(access.i64(input, p + 16) ^ see1 ^ _wyp2, - access.i64(input, p + 24) ^ see1 ^ _wyp3); + access.i64(input, p + 24) ^ see1 ^ _wyp3); } if (i < 4) { seed = _wymum(_wyr3(access, input, p, i) ^ seed ^ _wyp0, seed ^ _wyp1); } else if (i <= 8) { seed = _wymum(access.u32(input, p) ^ seed ^ _wyp0, - access.u32(input, p + i - 4) ^ seed ^ _wyp1); + access.u32(input, p + i - 4) ^ seed ^ _wyp1); } else if (i <= 16) { seed = _wymum(u64Rorate32(access, input, p) ^ seed ^ _wyp0, - u64Rorate32(access, input, p + i - 8) ^ seed ^ _wyp1); + u64Rorate32(access, input, p + i - 8) ^ seed ^ _wyp1); } else if (i <= 24) { seed = _wymum(u64Rorate32(access, input, p) ^ seed ^ _wyp0, - u64Rorate32(access, input, p + 8) ^ seed ^ _wyp1); + u64Rorate32(access, input, p + 8) ^ seed ^ _wyp1); see1 = _wymum(u64Rorate32(access, input, p + i - 8) ^ see1 ^ _wyp2, see1 ^ _wyp3); } else { seed = _wymum(u64Rorate32(access, input, p) ^ seed ^ _wyp0, - u64Rorate32(access, input, p + 8) ^ seed ^ _wyp1); + u64Rorate32(access, input, p + 8) ^ seed ^ _wyp1); see1 = _wymum(u64Rorate32(access, input, p + 16) ^ see1 ^ _wyp2, - u64Rorate32(access, input, p + i - 8) ^ see1 ^ _wyp3); + u64Rorate32(access, input, p + i - 8) ^ see1 ^ _wyp3); } return _wymum(seed ^ see1, length ^ _wyp4); } @@ -150,8 +151,8 @@ public long hashLong(long input) { long hi = input & 0xFFFFFFFFL; long lo = (input >>> 32) & 0xFFFFFFFFL; return _wymum(_wymum(hi ^ seed() ^ _wyp0, - lo ^ seed() ^ _wyp1) - ^ seed(), 8 ^ _wyp4); + lo ^ seed() ^ _wyp1) + ^ seed(), 8 ^ _wyp4); } @Override @@ -159,8 +160,8 @@ public long hashInt(int input) { input = Primitives.nativeToLittleEndian(input); long longInput = (input & 0xFFFFFFFFL); return _wymum(_wymum(longInput ^ seed() ^ _wyp0, - longInput ^ seed() ^ _wyp1) - ^ seed(), 4 ^ _wyp4); + longInput ^ seed() ^ _wyp1) + ^ seed(), 4 ^ _wyp4); } @Override @@ -169,12 +170,12 @@ public long hashShort(short input) { long hi = (input >>> 8) & 0xFFL; long wyr3 = hi | hi << 8 | (input & 0xFFL) << 16; return _wymum(_wymum(wyr3 ^ seed() ^ _wyp0, - seed() ^ _wyp1) ^ seed(), 2 ^ _wyp4); + seed() ^ _wyp1) ^ seed(), 2 ^ _wyp4); } @Override public long hashChar(final char input) { - return hashShort((short)input); + return hashShort((short) input); } @Override @@ -182,7 +183,7 @@ public long hashByte(final byte input) { long hi = input & 0xFFL; long wyr3 = hi | hi << 8 | hi << 16; return _wymum(_wymum(wyr3 ^ seed() ^ _wyp0, - seed() ^ _wyp1) ^ seed(), 1 ^ _wyp4); + seed() ^ _wyp1) ^ seed(), 1 ^ _wyp4); } @Override diff --git a/src/main/java/net/openhft/hashing/XXH3.java b/src/main/java/net/openhft/hashing/XXH3.java index 85e72d8..88d9851 100644 --- a/src/main/java/net/openhft/hashing/XXH3.java +++ b/src/main/java/net/openhft/hashing/XXH3.java @@ -20,7 +20,7 @@ import static java.nio.ByteOrder.LITTLE_ENDIAN; import static net.openhft.hashing.Maths.unsignedLongMulXorFold; -import static net.openhft.hashing.UnsafeAccess.*; +import static net.openhft.hashing.UnsafeAccess.BYTE_BASE; /** * Adapted version of XXH3 implementation from https://github.com/Cyan4973/xxHash. @@ -31,18 +31,18 @@ class XXH3 { /*! Pseudorandom secret taken directly from FARSH. */ private static final byte[] XXH3_kSecret = { - (byte)0xb8, (byte)0xfe, (byte)0x6c, (byte)0x39, (byte)0x23, (byte)0xa4, (byte)0x4b, (byte)0xbe, (byte)0x7c, (byte)0x01, (byte)0x81, (byte)0x2c, (byte)0xf7, (byte)0x21, (byte)0xad, (byte)0x1c, - (byte)0xde, (byte)0xd4, (byte)0x6d, (byte)0xe9, (byte)0x83, (byte)0x90, (byte)0x97, (byte)0xdb, (byte)0x72, (byte)0x40, (byte)0xa4, (byte)0xa4, (byte)0xb7, (byte)0xb3, (byte)0x67, (byte)0x1f, - (byte)0xcb, (byte)0x79, (byte)0xe6, (byte)0x4e, (byte)0xcc, (byte)0xc0, (byte)0xe5, (byte)0x78, (byte)0x82, (byte)0x5a, (byte)0xd0, (byte)0x7d, (byte)0xcc, (byte)0xff, (byte)0x72, (byte)0x21, - (byte)0xb8, (byte)0x08, (byte)0x46, (byte)0x74, (byte)0xf7, (byte)0x43, (byte)0x24, (byte)0x8e, (byte)0xe0, (byte)0x35, (byte)0x90, (byte)0xe6, (byte)0x81, (byte)0x3a, (byte)0x26, (byte)0x4c, - (byte)0x3c, (byte)0x28, (byte)0x52, (byte)0xbb, (byte)0x91, (byte)0xc3, (byte)0x00, (byte)0xcb, (byte)0x88, (byte)0xd0, (byte)0x65, (byte)0x8b, (byte)0x1b, (byte)0x53, (byte)0x2e, (byte)0xa3, - (byte)0x71, (byte)0x64, (byte)0x48, (byte)0x97, (byte)0xa2, (byte)0x0d, (byte)0xf9, (byte)0x4e, (byte)0x38, (byte)0x19, (byte)0xef, (byte)0x46, (byte)0xa9, (byte)0xde, (byte)0xac, (byte)0xd8, - (byte)0xa8, (byte)0xfa, (byte)0x76, (byte)0x3f, (byte)0xe3, (byte)0x9c, (byte)0x34, (byte)0x3f, (byte)0xf9, (byte)0xdc, (byte)0xbb, (byte)0xc7, (byte)0xc7, (byte)0x0b, (byte)0x4f, (byte)0x1d, - (byte)0x8a, (byte)0x51, (byte)0xe0, (byte)0x4b, (byte)0xcd, (byte)0xb4, (byte)0x59, (byte)0x31, (byte)0xc8, (byte)0x9f, (byte)0x7e, (byte)0xc9, (byte)0xd9, (byte)0x78, (byte)0x73, (byte)0x64, - (byte)0xea, (byte)0xc5, (byte)0xac, (byte)0x83, (byte)0x34, (byte)0xd3, (byte)0xeb, (byte)0xc3, (byte)0xc5, (byte)0x81, (byte)0xa0, (byte)0xff, (byte)0xfa, (byte)0x13, (byte)0x63, (byte)0xeb, - (byte)0x17, (byte)0x0d, (byte)0xdd, (byte)0x51, (byte)0xb7, (byte)0xf0, (byte)0xda, (byte)0x49, (byte)0xd3, (byte)0x16, (byte)0x55, (byte)0x26, (byte)0x29, (byte)0xd4, (byte)0x68, (byte)0x9e, - (byte)0x2b, (byte)0x16, (byte)0xbe, (byte)0x58, (byte)0x7d, (byte)0x47, (byte)0xa1, (byte)0xfc, (byte)0x8f, (byte)0xf8, (byte)0xb8, (byte)0xd1, (byte)0x7a, (byte)0xd0, (byte)0x31, (byte)0xce, - (byte)0x45, (byte)0xcb, (byte)0x3a, (byte)0x8f, (byte)0x95, (byte)0x16, (byte)0x04, (byte)0x28, (byte)0xaf, (byte)0xd7, (byte)0xfb, (byte)0xca, (byte)0xbb, (byte)0x4b, (byte)0x40, (byte)0x7e, + (byte) 0xb8, (byte) 0xfe, (byte) 0x6c, (byte) 0x39, (byte) 0x23, (byte) 0xa4, (byte) 0x4b, (byte) 0xbe, (byte) 0x7c, (byte) 0x01, (byte) 0x81, (byte) 0x2c, (byte) 0xf7, (byte) 0x21, (byte) 0xad, (byte) 0x1c, + (byte) 0xde, (byte) 0xd4, (byte) 0x6d, (byte) 0xe9, (byte) 0x83, (byte) 0x90, (byte) 0x97, (byte) 0xdb, (byte) 0x72, (byte) 0x40, (byte) 0xa4, (byte) 0xa4, (byte) 0xb7, (byte) 0xb3, (byte) 0x67, (byte) 0x1f, + (byte) 0xcb, (byte) 0x79, (byte) 0xe6, (byte) 0x4e, (byte) 0xcc, (byte) 0xc0, (byte) 0xe5, (byte) 0x78, (byte) 0x82, (byte) 0x5a, (byte) 0xd0, (byte) 0x7d, (byte) 0xcc, (byte) 0xff, (byte) 0x72, (byte) 0x21, + (byte) 0xb8, (byte) 0x08, (byte) 0x46, (byte) 0x74, (byte) 0xf7, (byte) 0x43, (byte) 0x24, (byte) 0x8e, (byte) 0xe0, (byte) 0x35, (byte) 0x90, (byte) 0xe6, (byte) 0x81, (byte) 0x3a, (byte) 0x26, (byte) 0x4c, + (byte) 0x3c, (byte) 0x28, (byte) 0x52, (byte) 0xbb, (byte) 0x91, (byte) 0xc3, (byte) 0x00, (byte) 0xcb, (byte) 0x88, (byte) 0xd0, (byte) 0x65, (byte) 0x8b, (byte) 0x1b, (byte) 0x53, (byte) 0x2e, (byte) 0xa3, + (byte) 0x71, (byte) 0x64, (byte) 0x48, (byte) 0x97, (byte) 0xa2, (byte) 0x0d, (byte) 0xf9, (byte) 0x4e, (byte) 0x38, (byte) 0x19, (byte) 0xef, (byte) 0x46, (byte) 0xa9, (byte) 0xde, (byte) 0xac, (byte) 0xd8, + (byte) 0xa8, (byte) 0xfa, (byte) 0x76, (byte) 0x3f, (byte) 0xe3, (byte) 0x9c, (byte) 0x34, (byte) 0x3f, (byte) 0xf9, (byte) 0xdc, (byte) 0xbb, (byte) 0xc7, (byte) 0xc7, (byte) 0x0b, (byte) 0x4f, (byte) 0x1d, + (byte) 0x8a, (byte) 0x51, (byte) 0xe0, (byte) 0x4b, (byte) 0xcd, (byte) 0xb4, (byte) 0x59, (byte) 0x31, (byte) 0xc8, (byte) 0x9f, (byte) 0x7e, (byte) 0xc9, (byte) 0xd9, (byte) 0x78, (byte) 0x73, (byte) 0x64, + (byte) 0xea, (byte) 0xc5, (byte) 0xac, (byte) 0x83, (byte) 0x34, (byte) 0xd3, (byte) 0xeb, (byte) 0xc3, (byte) 0xc5, (byte) 0x81, (byte) 0xa0, (byte) 0xff, (byte) 0xfa, (byte) 0x13, (byte) 0x63, (byte) 0xeb, + (byte) 0x17, (byte) 0x0d, (byte) 0xdd, (byte) 0x51, (byte) 0xb7, (byte) 0xf0, (byte) 0xda, (byte) 0x49, (byte) 0xd3, (byte) 0x16, (byte) 0x55, (byte) 0x26, (byte) 0x29, (byte) 0xd4, (byte) 0x68, (byte) 0x9e, + (byte) 0x2b, (byte) 0x16, (byte) 0xbe, (byte) 0x58, (byte) 0x7d, (byte) 0x47, (byte) 0xa1, (byte) 0xfc, (byte) 0x8f, (byte) 0xf8, (byte) 0xb8, (byte) 0xd1, (byte) 0x7a, (byte) 0xd0, (byte) 0x31, (byte) 0xce, + (byte) 0x45, (byte) 0xcb, (byte) 0x3a, (byte) 0x8f, (byte) 0x95, (byte) 0x16, (byte) 0x04, (byte) 0x28, (byte) 0xaf, (byte) 0xd7, (byte) 0xfb, (byte) 0xca, (byte) 0xbb, (byte) 0x4b, (byte) 0x40, (byte) 0x7e, }; // Primes @@ -67,11 +67,13 @@ private static long XXH64_avalanche(long h64) { h64 *= XXH_PRIME64_3; return h64 ^ (h64 >>> 32); } + private static long XXH3_avalanche(long h64) { h64 ^= h64 >>> 37; h64 *= 0x165667919E3779F9L; return h64 ^ (h64 >>> 32); } + private static long XXH3_rrmxmx(long h64, final long length) { h64 ^= Long.rotateLeft(h64, 49) ^ Long.rotateLeft(h64, 24); h64 *= 0x9FB21C651E98DF25L; @@ -84,8 +86,8 @@ private static long XXH3_mix16B(final long seed, final T input, final Access final long input_lo = access.i64(input, offIn); final long input_hi = access.i64(input, offIn + 8); return unsignedLongMulXorFold( - input_lo ^ (unsafeLE.i64(XXH3_kSecret, offSec) + seed), - input_hi ^ (unsafeLE.i64(XXH3_kSecret, offSec+8) - seed) + input_lo ^ (unsafeLE.i64(XXH3_kSecret, offSec) + seed), + input_hi ^ (unsafeLE.i64(XXH3_kSecret, offSec + 8) - seed) ); } @@ -94,15 +96,15 @@ private static long XXH3_mix16B(final long seed, final T input, final Access */ private static long XXH128_mix32B_once(final long seed, final long offSec, long acc, final long input0, final long input1, final long input2, final long input3) { acc += unsignedLongMulXorFold( - input0 ^ (unsafeLE.i64(XXH3_kSecret, offSec ) + seed), - input1 ^ (unsafeLE.i64(XXH3_kSecret, offSec + 8) - seed)); + input0 ^ (unsafeLE.i64(XXH3_kSecret, offSec) + seed), + input1 ^ (unsafeLE.i64(XXH3_kSecret, offSec + 8) - seed)); return acc ^ (input2 + input3); } private static long XXH3_mix2Accs(final long acc_lh, final long acc_rh, final byte[] secret, final long offSec) { return unsignedLongMulXorFold( - acc_lh ^ unsafeLE.i64(secret, offSec), - acc_rh ^ unsafeLE.i64(secret, offSec+8) ); + acc_lh ^ unsafeLE.i64(secret, offSec), + acc_rh ^ unsafeLE.i64(secret, offSec + 8)); } private static long XXH3_64bits_internal(final long seed, final byte[] secret, final T input, final Access access, final long off, final long length) { @@ -110,8 +112,8 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre // XXH3_len_0to16_64b if (length > 8) { // XXH3_len_9to16_64b - final long bitflip1 = (unsafeLE.i64(XXH3_kSecret, 24+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 32+BYTE_BASE)) + seed; - final long bitflip2 = (unsafeLE.i64(XXH3_kSecret, 40+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 48+BYTE_BASE)) - seed; + final long bitflip1 = (unsafeLE.i64(XXH3_kSecret, 24 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 32 + BYTE_BASE)) + seed; + final long bitflip2 = (unsafeLE.i64(XXH3_kSecret, 40 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 48 + BYTE_BASE)) - seed; final long input_lo = access.i64(input, off) ^ bitflip1; final long input_hi = access.i64(input, off + length - 8) ^ bitflip2; final long acc = length + Long.reverseBytes(input_lo) + input_hi + unsignedLongMulXorFold(input_lo, input_hi); @@ -120,9 +122,9 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre if (length >= 4) { // XXH3_len_4to8_64b long s = seed ^ Long.reverseBytes(seed & 0xFFFFFFFFL); - final long input1 = (long)access.i32(input, off); // high int will be shifted + final long input1 = (long) access.i32(input, off); // high int will be shifted final long input2 = access.u32(input, off + length - 4); - final long bitflip = (unsafeLE.i64(XXH3_kSecret, 8+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 16+BYTE_BASE)) - s; + final long bitflip = (unsafeLE.i64(XXH3_kSecret, 8 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 16 + BYTE_BASE)) - s; final long keyed = (input2 + (input1 << 32)) ^ bitflip; return XXH3_rrmxmx(keyed, length); } @@ -131,11 +133,11 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre final int c1 = access.u8(input, off + 0); final int c2 = access.i8(input, off + (length >> 1)); // high 3 bytes will be shifted final int c3 = access.u8(input, off + length - 1); - final long combined = Primitives.unsignedInt((c1 << 16) | (c2 << 24) | c3 | ((int)length << 8)); - final long bitflip = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, 4+BYTE_BASE)) + seed; + final long combined = Primitives.unsignedInt((c1 << 16) | (c2 << 24) | c3 | ((int) length << 8)); + final long bitflip = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, 4 + BYTE_BASE)) + seed; return XXH64_avalanche(combined ^ bitflip); } - return XXH64_avalanche(seed ^ unsafeLE.i64(XXH3_kSecret, 56+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 64+BYTE_BASE)); + return XXH64_avalanche(seed ^ unsafeLE.i64(XXH3_kSecret, 56 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 64 + BYTE_BASE)); } if (length <= 128) { // XXH3_len_17to128_64b @@ -161,15 +163,15 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre if (length <= 240) { // XXH3_len_129to240_64b long acc = length * XXH_PRIME64_1; - final int nbRounds = (int)length / 16; + final int nbRounds = (int) length / 16; int i = 0; for (; i < 8; ++i) { - acc += XXH3_mix16B(seed, input, access, off + 16*i, BYTE_BASE + 16*i); + acc += XXH3_mix16B(seed, input, access, off + 16 * i, BYTE_BASE + 16 * i); } acc = XXH3_avalanche(acc); for (; i < nbRounds; ++i) { - acc += XXH3_mix16B(seed, input, access, off + 16*i, BYTE_BASE + 16*(i-8) + 3); + acc += XXH3_mix16B(seed, input, access, off + 16 * i, BYTE_BASE + 16 * (i - 8) + 3); } /* last bytes */ @@ -192,42 +194,42 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre for (long n = 0; n < nb_blocks; n++) { // XXH3_accumulate final long offBlock = off + n * block_len; - for (long s = 0; s < nbStripesPerBlock; s++ ) { + for (long s = 0; s < nbStripesPerBlock; s++) { // XXH3_accumulate_512 final long offStripe = offBlock + s * 64; final long offSec = s * 8; { - final long data_val_0 = access.i64(input, offStripe + 8*0); - final long data_val_1 = access.i64(input, offStripe + 8*1); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*0); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*1); + final long data_val_0 = access.i64(input, offStripe + 8 * 0); + final long data_val_1 = access.i64(input, offStripe + 8 * 1); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 0); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 1); /* swap adjacent lanes */ acc_0 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_1 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*2); - final long data_val_1 = access.i64(input, offStripe + 8*3); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*2); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*3); + final long data_val_0 = access.i64(input, offStripe + 8 * 2); + final long data_val_1 = access.i64(input, offStripe + 8 * 3); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 2); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 3); /* swap adjacent lanes */ acc_2 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_3 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*4); - final long data_val_1 = access.i64(input, offStripe + 8*5); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*4); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*5); + final long data_val_0 = access.i64(input, offStripe + 8 * 4); + final long data_val_1 = access.i64(input, offStripe + 8 * 5); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 4); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 5); /* swap adjacent lanes */ acc_4 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_5 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*6); - final long data_val_1 = access.i64(input, offStripe + 8*7); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*6); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*7); + final long data_val_0 = access.i64(input, offStripe + 8 * 6); + final long data_val_1 = access.i64(input, offStripe + 8 * 7); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 6); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 7); /* swap adjacent lanes */ acc_6 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_7 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); @@ -236,14 +238,14 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre // XXH3_scrambleAcc_scalar final long offSec = BYTE_BASE + 192 - 64; - acc_0 = (acc_0 ^ (acc_0 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*0)) * XXH_PRIME32_1; - acc_1 = (acc_1 ^ (acc_1 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*1)) * XXH_PRIME32_1; - acc_2 = (acc_2 ^ (acc_2 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*2)) * XXH_PRIME32_1; - acc_3 = (acc_3 ^ (acc_3 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*3)) * XXH_PRIME32_1; - acc_4 = (acc_4 ^ (acc_4 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*4)) * XXH_PRIME32_1; - acc_5 = (acc_5 ^ (acc_5 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*5)) * XXH_PRIME32_1; - acc_6 = (acc_6 ^ (acc_6 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*6)) * XXH_PRIME32_1; - acc_7 = (acc_7 ^ (acc_7 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*7)) * XXH_PRIME32_1; + acc_0 = (acc_0 ^ (acc_0 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 0)) * XXH_PRIME32_1; + acc_1 = (acc_1 ^ (acc_1 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 1)) * XXH_PRIME32_1; + acc_2 = (acc_2 ^ (acc_2 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 2)) * XXH_PRIME32_1; + acc_3 = (acc_3 ^ (acc_3 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 3)) * XXH_PRIME32_1; + acc_4 = (acc_4 ^ (acc_4 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 4)) * XXH_PRIME32_1; + acc_5 = (acc_5 ^ (acc_5 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 5)) * XXH_PRIME32_1; + acc_6 = (acc_6 ^ (acc_6 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 6)) * XXH_PRIME32_1; + acc_7 = (acc_7 ^ (acc_7 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 7)) * XXH_PRIME32_1; } /* last partial block */ @@ -254,37 +256,37 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre final long offStripe = offBlock + s * 64; final long offSec = s * 8; { - final long data_val_0 = access.i64(input, offStripe + 8*0); - final long data_val_1 = access.i64(input, offStripe + 8*1); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*0); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*1); + final long data_val_0 = access.i64(input, offStripe + 8 * 0); + final long data_val_1 = access.i64(input, offStripe + 8 * 1); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 0); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 1); /* swap adjacent lanes */ acc_0 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_1 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*2); - final long data_val_1 = access.i64(input, offStripe + 8*3); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*2); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*3); + final long data_val_0 = access.i64(input, offStripe + 8 * 2); + final long data_val_1 = access.i64(input, offStripe + 8 * 3); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 2); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 3); /* swap adjacent lanes */ acc_2 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_3 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*4); - final long data_val_1 = access.i64(input, offStripe + 8*5); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*4); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*5); + final long data_val_0 = access.i64(input, offStripe + 8 * 4); + final long data_val_1 = access.i64(input, offStripe + 8 * 5); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 4); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 5); /* swap adjacent lanes */ acc_4 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_5 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*6); - final long data_val_1 = access.i64(input, offStripe + 8*7); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*6); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*7); + final long data_val_0 = access.i64(input, offStripe + 8 * 6); + final long data_val_1 = access.i64(input, offStripe + 8 * 7); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 6); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 7); /* swap adjacent lanes */ acc_6 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_7 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); @@ -296,37 +298,37 @@ private static long XXH3_64bits_internal(final long seed, final byte[] secre final long offStripe = off + length - 64; final long offSec = 192 - 64 - 7; { - final long data_val_0 = access.i64(input, offStripe + 8*0); - final long data_val_1 = access.i64(input, offStripe + 8*1); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*0); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*1); + final long data_val_0 = access.i64(input, offStripe + 8 * 0); + final long data_val_1 = access.i64(input, offStripe + 8 * 1); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 0); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 1); /* swap adjacent lanes */ acc_0 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_1 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*2); - final long data_val_1 = access.i64(input, offStripe + 8*3); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*2); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*3); + final long data_val_0 = access.i64(input, offStripe + 8 * 2); + final long data_val_1 = access.i64(input, offStripe + 8 * 3); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 2); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 3); /* swap adjacent lanes */ acc_2 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_3 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*4); - final long data_val_1 = access.i64(input, offStripe + 8*5); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*4); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*5); + final long data_val_0 = access.i64(input, offStripe + 8 * 4); + final long data_val_1 = access.i64(input, offStripe + 8 * 5); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 4); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 5); /* swap adjacent lanes */ acc_4 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_5 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*6); - final long data_val_1 = access.i64(input, offStripe + 8*7); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*6); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*7); + final long data_val_0 = access.i64(input, offStripe + 8 * 6); + final long data_val_1 = access.i64(input, offStripe + 8 * 7); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 6); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 7); /* swap adjacent lanes */ acc_6 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_7 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); @@ -347,15 +349,15 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr // XXH3_len_0to16_128b if (length > 8) { // XXH3_len_9to16_128b - final long bitflipl = (unsafeLE.i64(XXH3_kSecret, 32+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 40+BYTE_BASE)) - seed; - final long bitfliph = (unsafeLE.i64(XXH3_kSecret, 48+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 56+BYTE_BASE)) + seed; + final long bitflipl = (unsafeLE.i64(XXH3_kSecret, 32 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 40 + BYTE_BASE)) - seed; + final long bitfliph = (unsafeLE.i64(XXH3_kSecret, 48 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 56 + BYTE_BASE)) + seed; long input_hi = access.i64(input, off + length - 8); final long input_lo = access.i64(input, off) ^ input_hi ^ bitflipl; long m128_lo = input_lo * XXH_PRIME64_1; long m128_hi = Maths.unsignedLongMulHigh(input_lo, XXH_PRIME64_1); m128_lo += (length - 1) << 54; input_hi ^= bitfliph; - m128_hi += input_hi + Primitives.unsignedInt((int)input_hi) * (XXH_PRIME32_2 - 1); + m128_hi += input_hi + Primitives.unsignedInt((int) input_hi) * (XXH_PRIME32_2 - 1); m128_lo ^= Long.reverseBytes(m128_hi); final long low = XXH3_avalanche(m128_lo * XXH_PRIME64_2); @@ -369,9 +371,9 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr // XXH3_len_4to8_128b long s = seed ^ Long.reverseBytes(seed & 0xFFFFFFFFL); final long input_lo = access.u32(input, off); - final long input_hi = (long)access.i32(input, off + length - 4); // high int will be shifted + final long input_hi = (long) access.i32(input, off + length - 4); // high int will be shifted - final long bitflip = (unsafeLE.i64(XXH3_kSecret, 16+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 24+BYTE_BASE)) + s; + final long bitflip = (unsafeLE.i64(XXH3_kSecret, 16 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 24 + BYTE_BASE)) + s; final long keyed = (input_lo + (input_hi << 32)) ^ bitflip; final long pl = XXH_PRIME64_1 + (length << 2); /* Shift len to the left to ensure it is even, this avoids even multiplies. */ long m128_lo = keyed * pl; @@ -394,10 +396,10 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr final int c1 = access.u8(input, off + 0); final int c2 = access.i8(input, off + (length >> 1)); // high 3 bytes will be shifted final int c3 = access.u8(input, off + length - 1); - final int combinedl = (c1 << 16) | (c2 << 24) | c3 | ((int)length << 8); + final int combinedl = (c1 << 16) | (c2 << 24) | c3 | ((int) length << 8); final int combinedh = Integer.rotateLeft(Integer.reverseBytes(combinedl), 13); - final long bitflipl = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE+4)) + seed; - final long bitfliph = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE+8) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE+12)) - seed; + final long bitflipl = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 4)) + seed; + final long bitfliph = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 8) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 12)) - seed; final long low = XXH64_avalanche(Primitives.unsignedInt(combinedl) ^ bitflipl); if (null != result) { @@ -406,10 +408,10 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr } return low; } - final long low = XXH64_avalanche(seed ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+64) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+72)); + final long low = XXH64_avalanche(seed ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 64) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 72)); if (null != result) { result[0] = low; - result[1] = XXH64_avalanche(seed ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+80) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+88)); + result[1] = XXH64_avalanche(seed ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 80) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 88)); } return low; } @@ -424,62 +426,62 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr final long input1 = access.i64(input, off + 48 + 8); final long input2 = access.i64(input, off + length - 64); final long input3 = access.i64(input, off + length - 64 + 8); - acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 96, acc0, input0, input1, input2, input3); + acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 96, acc0, input0, input1, input2, input3); acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 96 + 16, acc1, input2, input3, input0, input1); } final long input0 = access.i64(input, off + 32); final long input1 = access.i64(input, off + 32 + 8); final long input2 = access.i64(input, off + length - 48); final long input3 = access.i64(input, off + length - 48 + 8); - acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 64, acc0, input0, input1, input2, input3); + acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 64, acc0, input0, input1, input2, input3); acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 64 + 16, acc1, input2, input3, input0, input1); } final long input0 = access.i64(input, off + 16); final long input1 = access.i64(input, off + 16 + 8); final long input2 = access.i64(input, off + length - 32); final long input3 = access.i64(input, off + length - 32 + 8); - acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 32, acc0, input0, input1, input2, input3); + acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 32, acc0, input0, input1, input2, input3); acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 32 + 16, acc1, input2, input3, input0, input1); } final long input0 = access.i64(input, off + 0); final long input1 = access.i64(input, off + 0 + 8); final long input2 = access.i64(input, off + length - 16); final long input3 = access.i64(input, off + length - 16 + 8); - acc0 = XXH128_mix32B_once(seed, BYTE_BASE, acc0, input0, input1, input2, input3); + acc0 = XXH128_mix32B_once(seed, BYTE_BASE, acc0, input0, input1, input2, input3); acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 16, acc1, input2, input3, input0, input1); final long low = XXH3_avalanche(acc0 + acc1); if (null != result) { result[0] = low; - result[1] = -XXH3_avalanche(acc0*XXH_PRIME64_1 + acc1*XXH_PRIME64_4 + (length - seed)*XXH_PRIME64_2); + result[1] = -XXH3_avalanche(acc0 * XXH_PRIME64_1 + acc1 * XXH_PRIME64_4 + (length - seed) * XXH_PRIME64_2); } return low; } if (length <= 240) { // XXH3_len_129to240_128b - final int nbRounds = (int)length / 32; + final int nbRounds = (int) length / 32; long acc0 = length * XXH_PRIME64_1; long acc1 = 0; int i = 0; for (; i < 4; ++i) { - final long input0 = access.i64(input, off + 32*i); - final long input1 = access.i64(input, off + 32*i + 8); - final long input2 = access.i64(input, off + 32*i + 16); - final long input3 = access.i64(input, off + 32*i + 24); - acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 32*i, acc0, input0, input1, input2, input3); - acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 32*i + 16, acc1, input2, input3, input0, input1); + final long input0 = access.i64(input, off + 32 * i); + final long input1 = access.i64(input, off + 32 * i + 8); + final long input2 = access.i64(input, off + 32 * i + 16); + final long input3 = access.i64(input, off + 32 * i + 24); + acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 32 * i, acc0, input0, input1, input2, input3); + acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 32 * i + 16, acc1, input2, input3, input0, input1); } acc0 = XXH3_avalanche(acc0); acc1 = XXH3_avalanche(acc1); for (; i < nbRounds; ++i) { - final long input0 = access.i64(input, off + 32*i); - final long input1 = access.i64(input, off + 32*i + 8); - final long input2 = access.i64(input, off + 32*i + 16); - final long input3 = access.i64(input, off + 32*i + 24); - acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 3 + 32*(i-4), acc0, input0, input1, input2, input3); - acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 3 + 32*(i-4) + 16, acc1, input2, input3, input0, input1); + final long input0 = access.i64(input, off + 32 * i); + final long input1 = access.i64(input, off + 32 * i + 8); + final long input2 = access.i64(input, off + 32 * i + 16); + final long input3 = access.i64(input, off + 32 * i + 24); + acc0 = XXH128_mix32B_once(seed, BYTE_BASE + 3 + 32 * (i - 4), acc0, input0, input1, input2, input3); + acc1 = XXH128_mix32B_once(seed, BYTE_BASE + 3 + 32 * (i - 4) + 16, acc1, input2, input3, input0, input1); } /* last bytes */ @@ -488,12 +490,12 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr final long input2 = access.i64(input, off + length - 32); final long input3 = access.i64(input, off + length - 32 + 8); acc0 = XXH128_mix32B_once(-seed, BYTE_BASE + 136 - 17 - 16, acc0, input0, input1, input2, input3); - acc1 = XXH128_mix32B_once(-seed, BYTE_BASE + 136 - 17 , acc1, input2, input3, input0, input1); + acc1 = XXH128_mix32B_once(-seed, BYTE_BASE + 136 - 17, acc1, input2, input3, input0, input1); final long low = XXH3_avalanche(acc0 + acc1); if (null != result) { result[0] = low; - result[1] = -XXH3_avalanche(acc0*XXH_PRIME64_1 + acc1*XXH_PRIME64_4 + (length - seed)*XXH_PRIME64_2); + result[1] = -XXH3_avalanche(acc0 * XXH_PRIME64_1 + acc1 * XXH_PRIME64_4 + (length - seed) * XXH_PRIME64_2); } return low; } @@ -513,42 +515,42 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr for (long n = 0; n < nb_blocks; n++) { // XXH3_accumulate final long offBlock = off + n * block_len; - for (long s = 0; s < nbStripesPerBlock; s++ ) { + for (long s = 0; s < nbStripesPerBlock; s++) { // XXH3_accumulate_512 final long offStripe = offBlock + s * 64; final long offSec = s * 8; { - final long data_val_0 = access.i64(input, offStripe + 8*0); - final long data_val_1 = access.i64(input, offStripe + 8*1); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*0); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*1); + final long data_val_0 = access.i64(input, offStripe + 8 * 0); + final long data_val_1 = access.i64(input, offStripe + 8 * 1); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 0); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 1); /* swap adjacent lanes */ acc_0 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_1 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*2); - final long data_val_1 = access.i64(input, offStripe + 8*3); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*2); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*3); + final long data_val_0 = access.i64(input, offStripe + 8 * 2); + final long data_val_1 = access.i64(input, offStripe + 8 * 3); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 2); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 3); /* swap adjacent lanes */ acc_2 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_3 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*4); - final long data_val_1 = access.i64(input, offStripe + 8*5); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*4); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*5); + final long data_val_0 = access.i64(input, offStripe + 8 * 4); + final long data_val_1 = access.i64(input, offStripe + 8 * 5); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 4); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 5); /* swap adjacent lanes */ acc_4 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_5 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*6); - final long data_val_1 = access.i64(input, offStripe + 8*7); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*6); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*7); + final long data_val_0 = access.i64(input, offStripe + 8 * 6); + final long data_val_1 = access.i64(input, offStripe + 8 * 7); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 6); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 7); /* swap adjacent lanes */ acc_6 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_7 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); @@ -557,14 +559,14 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr // XXH3_scrambleAcc_scalar final long offSec = BYTE_BASE + 192 - 64; - acc_0 = (acc_0 ^ (acc_0 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*0)) * XXH_PRIME32_1; - acc_1 = (acc_1 ^ (acc_1 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*1)) * XXH_PRIME32_1; - acc_2 = (acc_2 ^ (acc_2 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*2)) * XXH_PRIME32_1; - acc_3 = (acc_3 ^ (acc_3 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*3)) * XXH_PRIME32_1; - acc_4 = (acc_4 ^ (acc_4 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*4)) * XXH_PRIME32_1; - acc_5 = (acc_5 ^ (acc_5 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*5)) * XXH_PRIME32_1; - acc_6 = (acc_6 ^ (acc_6 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*6)) * XXH_PRIME32_1; - acc_7 = (acc_7 ^ (acc_7 >>> 47) ^ unsafeLE.i64(secret, offSec + 8*7)) * XXH_PRIME32_1; + acc_0 = (acc_0 ^ (acc_0 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 0)) * XXH_PRIME32_1; + acc_1 = (acc_1 ^ (acc_1 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 1)) * XXH_PRIME32_1; + acc_2 = (acc_2 ^ (acc_2 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 2)) * XXH_PRIME32_1; + acc_3 = (acc_3 ^ (acc_3 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 3)) * XXH_PRIME32_1; + acc_4 = (acc_4 ^ (acc_4 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 4)) * XXH_PRIME32_1; + acc_5 = (acc_5 ^ (acc_5 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 5)) * XXH_PRIME32_1; + acc_6 = (acc_6 ^ (acc_6 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 6)) * XXH_PRIME32_1; + acc_7 = (acc_7 ^ (acc_7 >>> 47) ^ unsafeLE.i64(secret, offSec + 8 * 7)) * XXH_PRIME32_1; } /* last partial block */ @@ -575,37 +577,37 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr final long offStripe = offBlock + s * 64; final long offSec = s * 8; { - final long data_val_0 = access.i64(input, offStripe + 8*0); - final long data_val_1 = access.i64(input, offStripe + 8*1); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*0); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*1); + final long data_val_0 = access.i64(input, offStripe + 8 * 0); + final long data_val_1 = access.i64(input, offStripe + 8 * 1); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 0); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 1); /* swap adjacent lanes */ acc_0 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_1 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*2); - final long data_val_1 = access.i64(input, offStripe + 8*3); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*2); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*3); + final long data_val_0 = access.i64(input, offStripe + 8 * 2); + final long data_val_1 = access.i64(input, offStripe + 8 * 3); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 2); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 3); /* swap adjacent lanes */ acc_2 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_3 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*4); - final long data_val_1 = access.i64(input, offStripe + 8*5); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*4); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*5); + final long data_val_0 = access.i64(input, offStripe + 8 * 4); + final long data_val_1 = access.i64(input, offStripe + 8 * 5); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 4); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 5); /* swap adjacent lanes */ acc_4 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_5 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*6); - final long data_val_1 = access.i64(input, offStripe + 8*7); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*6); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*7); + final long data_val_0 = access.i64(input, offStripe + 8 * 6); + final long data_val_1 = access.i64(input, offStripe + 8 * 7); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 6); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 7); /* swap adjacent lanes */ acc_6 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_7 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); @@ -617,37 +619,37 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr final long offStripe = off + length - 64; final long offSec = 192 - 64 - 7; { - final long data_val_0 = access.i64(input, offStripe + 8*0); - final long data_val_1 = access.i64(input, offStripe + 8*1); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*0); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*1); + final long data_val_0 = access.i64(input, offStripe + 8 * 0); + final long data_val_1 = access.i64(input, offStripe + 8 * 1); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 0); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 1); /* swap adjacent lanes */ acc_0 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_1 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*2); - final long data_val_1 = access.i64(input, offStripe + 8*3); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*2); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*3); + final long data_val_0 = access.i64(input, offStripe + 8 * 2); + final long data_val_1 = access.i64(input, offStripe + 8 * 3); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 2); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 3); /* swap adjacent lanes */ acc_2 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_3 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*4); - final long data_val_1 = access.i64(input, offStripe + 8*5); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*4); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*5); + final long data_val_0 = access.i64(input, offStripe + 8 * 4); + final long data_val_1 = access.i64(input, offStripe + 8 * 5); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 4); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 5); /* swap adjacent lanes */ acc_4 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_5 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); } { - final long data_val_0 = access.i64(input, offStripe + 8*6); - final long data_val_1 = access.i64(input, offStripe + 8*7); - final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*6); - final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8*7); + final long data_val_0 = access.i64(input, offStripe + 8 * 6); + final long data_val_1 = access.i64(input, offStripe + 8 * 7); + final long data_key_0 = data_val_0 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 6); + final long data_key_1 = data_val_1 ^ unsafeLE.i64(secret, BYTE_BASE + offSec + 8 * 7); /* swap adjacent lanes */ acc_6 += data_val_1 + (0xFFFFFFFFL & data_key_0) * (data_key_0 >>> 32); acc_7 += data_val_0 + (0xFFFFFFFFL & data_key_1) * (data_key_1 >>> 32); @@ -673,9 +675,9 @@ private static long XXH3_128bits_internal(final long seed, final byte[] secr private static void XXH3_initCustomSecret(final byte[] customSecret, final long seed64) { final int nbRounds = 192 / 16; final ByteBuffer bb = ByteBuffer.wrap(customSecret).order(LITTLE_ENDIAN); - for (int i=0; i < nbRounds; i++) { - final long lo = unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 16*i) + seed64; - final long hi = unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 16*i + 8) - seed64; + for (int i = 0; i < nbRounds; i++) { + final long lo = unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 16 * i) + seed64; + final long hi = unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 16 * i + 8) - seed64; bb.putLong(16 * i + 0, lo); bb.putLong(16 * i + 8, hi); } @@ -697,7 +699,7 @@ public long seed() { public long hashLong(long input) { input = Primitives.nativeToLittleEndian(input); final long s = seed() ^ Long.reverseBytes(seed() & 0xFFFFFFFFL); - final long bitflip = (unsafeLE.i64(XXH3.XXH3_kSecret, 8+BYTE_BASE) ^ unsafeLE.i64(XXH3.XXH3_kSecret, 16+BYTE_BASE)) - s; + final long bitflip = (unsafeLE.i64(XXH3.XXH3_kSecret, 8 + BYTE_BASE) ^ unsafeLE.i64(XXH3.XXH3_kSecret, 16 + BYTE_BASE)) - s; final long keyed = Long.rotateLeft(input, 32) ^ bitflip; return XXH3_rrmxmx(keyed, 8); } @@ -706,19 +708,19 @@ public long hashLong(long input) { public long hashInt(int input) { input = Primitives.nativeToLittleEndian(input); long s = seed() ^ Long.reverseBytes(seed() & 0xFFFFFFFFL); - final long bitflip = (unsafeLE.i64(XXH3.XXH3_kSecret, 8+BYTE_BASE) ^ unsafeLE.i64(XXH3.XXH3_kSecret, 16+BYTE_BASE)) - s; - final long keyed = (Primitives.unsignedInt(input) + (((long)input) << 32)) ^ bitflip; + final long bitflip = (unsafeLE.i64(XXH3.XXH3_kSecret, 8 + BYTE_BASE) ^ unsafeLE.i64(XXH3.XXH3_kSecret, 16 + BYTE_BASE)) - s; + final long keyed = (Primitives.unsignedInt(input) + (((long) input) << 32)) ^ bitflip; return XXH3_rrmxmx(keyed, 4); } @Override public long hashShort(short input) { input = Primitives.nativeToLittleEndian(input); - final int c1 = Primitives.unsignedByte((byte)input); + final int c1 = Primitives.unsignedByte((byte) input); final int c2 = Primitives.unsignedShort(input) >>> 8; final int c3 = c2; final long combined = Primitives.unsignedInt((c1 << 16) | (c2 << 24) | c3 | (2 << 8)); - final long bitflip = (unsafeLE.u32(XXH3.XXH3_kSecret, BYTE_BASE) ^ unsafeLE.u32(XXH3.XXH3_kSecret, 4+BYTE_BASE)) + seed(); + final long bitflip = (unsafeLE.u32(XXH3.XXH3_kSecret, BYTE_BASE) ^ unsafeLE.u32(XXH3.XXH3_kSecret, 4 + BYTE_BASE)) + seed(); return XXH64_avalanche(combined ^ bitflip); } @@ -733,13 +735,13 @@ public long hashByte(byte input) { final int c2 = c1; final int c3 = c1; final long combined = Primitives.unsignedInt((c1 << 16) | (c2 << 24) | c3 | (1 << 8)); - final long bitflip = (unsafeLE.u32(XXH3.XXH3_kSecret, BYTE_BASE) ^ unsafeLE.u32(XXH3.XXH3_kSecret, 4+BYTE_BASE)) + seed(); + final long bitflip = (unsafeLE.u32(XXH3.XXH3_kSecret, BYTE_BASE) ^ unsafeLE.u32(XXH3.XXH3_kSecret, 4 + BYTE_BASE)) + seed(); return XXH64_avalanche(combined ^ bitflip); } @Override public long hashVoid() { - return XXH64_avalanche(seed() ^ unsafeLE.i64(XXH3.XXH3_kSecret, 56+BYTE_BASE) ^ unsafeLE.i64(XXH3.XXH3_kSecret, 64+BYTE_BASE)); + return XXH64_avalanche(seed() ^ unsafeLE.i64(XXH3.XXH3_kSecret, 56 + BYTE_BASE) ^ unsafeLE.i64(XXH3.XXH3_kSecret, 64 + BYTE_BASE)); } @Override @@ -777,6 +779,7 @@ public long hash(final T input, final Access access, final long off, fina static LongTupleHashFunction asLongTupleHashFunctionWithoutSeed() { return AsLongTupleHashFunction.SEEDLESS_INSTANCE; } + static LongHashFunction asLongTupleLowHashFunctionWithoutSeed() { return AsLongTupleHashFunction.SEEDLESS_INSTANCE.asLongHashFunction(); } @@ -803,7 +806,7 @@ public long[] newResultArray() { public long dualHashLong(long input, final long[] result) { input = Primitives.nativeToLittleEndian(input); long s = seed() ^ Long.reverseBytes(seed() & 0xFFFFFFFFL); - final long bitflip = (unsafeLE.i64(XXH3_kSecret, 16+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 24+BYTE_BASE)) + s; + final long bitflip = (unsafeLE.i64(XXH3_kSecret, 16 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 24 + BYTE_BASE)) + s; final long keyed = input ^ bitflip; final long pl = XXH_PRIME64_1 + (8 << 2); /* Shift len to the left to ensure it is even, this avoids even multiplies. */ long m128_lo = keyed * pl; @@ -826,7 +829,7 @@ public long dualHashLong(long input, final long[] result) { public long dualHashInt(final int input, final long[] result) { final long inputU = Primitives.unsignedInt(Primitives.nativeToLittleEndian(input)); long s = seed() ^ Long.reverseBytes(seed() & 0xFFFFFFFFL); - final long bitflip = (unsafeLE.i64(XXH3_kSecret, 16+BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 24+BYTE_BASE)) + s; + final long bitflip = (unsafeLE.i64(XXH3_kSecret, 16 + BYTE_BASE) ^ unsafeLE.i64(XXH3_kSecret, 24 + BYTE_BASE)) + s; final long keyed = (inputU + (inputU << 32)) ^ bitflip; final long pl = XXH_PRIME64_1 + (4 << 2); /* Shift len to the left to ensure it is even, this avoids even multiplies. */ long m128_lo = keyed * pl; @@ -849,13 +852,13 @@ public long dualHashInt(final int input, final long[] result) { @Override public long dualHashShort(short input, final long[] result) { input = Primitives.nativeToLittleEndian(input); - final int c1 = Primitives.unsignedByte((byte)input); + final int c1 = Primitives.unsignedByte((byte) input); final int c2 = Primitives.unsignedShort(input) >>> 8; final int c3 = c2; - final int combinedl = (c1 << 16) | (c2 << 24) | c3 | (2 << 8); + final int combinedl = (c1 << 16) | (c2 << 24) | c3 | (2 << 8); final int combinedh = Integer.rotateLeft(Integer.reverseBytes(combinedl), 13); - final long bitflipl = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE+4)) + seed(); - final long bitfliph = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE+8) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE+12)) - seed(); + final long bitflipl = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 4)) + seed(); + final long bitfliph = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 8) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 12)) - seed(); final long low = XXH64_avalanche(Primitives.unsignedInt(combinedl) ^ bitflipl); if (null != result) { @@ -874,12 +877,12 @@ public long dualHashChar(char input, final long[] result) { public long dualHashByte(byte input, final long[] result) { final int c1 = Primitives.unsignedByte(input); //final int c2 = c1; - final int c2 = (byte)input; + final int c2 = (byte) input; final int c3 = c1; - final int combinedl = (c1 << 16) | (c2 << 24) | c3 | (1 << 8); + final int combinedl = (c1 << 16) | (c2 << 24) | c3 | (1 << 8); final int combinedh = Integer.rotateLeft(Integer.reverseBytes(combinedl), 13); - final long bitflipl = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE+4)) + seed(); - final long bitfliph = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE+8) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE+12)) - seed(); + final long bitflipl = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 4)) + seed(); + final long bitfliph = Primitives.unsignedInt(unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 8) ^ unsafeLE.i32(XXH3_kSecret, BYTE_BASE + 12)) - seed(); final long low = XXH64_avalanche(Primitives.unsignedInt(combinedl) ^ bitflipl); if (null != result) { @@ -891,10 +894,10 @@ public long dualHashByte(byte input, final long[] result) { @Override public long dualHashVoid(final long[] result) { - final long low = XXH64_avalanche(seed() ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+64) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+72)); + final long low = XXH64_avalanche(seed() ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 64) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 72)); if (null != result) { result[0] = low; - result[1] = XXH64_avalanche(seed() ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+80) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE+88)); + result[1] = XXH64_avalanche(seed() ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 80) ^ unsafeLE.i64(XXH3_kSecret, BYTE_BASE + 88)); } return low; } @@ -908,6 +911,7 @@ public long dualHash(final T input, final Access access, final long off, static LongTupleHashFunction asLongTupleHashFunctionWithSeed(final long seed) { return 0 == seed ? AsLongTupleHashFunction.SEEDLESS_INSTANCE : new AsLongTupleHashFunctionSeeded(seed); } + static LongHashFunction asLongTupleLowHashFunctionWithSeed(long seed) { return new AsLongTupleHashFunctionSeeded(seed).asLongHashFunction(); } diff --git a/src/main/java/net/openhft/hashing/XxHash.java b/src/main/java/net/openhft/hashing/XxHash.java index 7c44318..6c3972f 100644 --- a/src/main/java/net/openhft/hashing/XxHash.java +++ b/src/main/java/net/openhft/hashing/XxHash.java @@ -62,9 +62,9 @@ static long xxHash64(long seed, T input, Access access, long off, long le } while (remaining >= 32); hash = Long.rotateLeft(v1, 1) - + Long.rotateLeft(v2, 7) - + Long.rotateLeft(v3, 12) - + Long.rotateLeft(v4, 18); + + Long.rotateLeft(v2, 7) + + Long.rotateLeft(v3, 12) + + Long.rotateLeft(v4, 18); v1 *= P2; v1 = Long.rotateLeft(v1, 31); diff --git a/src/main/java/sun/nio/ch/DirectBuffer.java b/src/main/java/sun/nio/ch/DirectBuffer.java index e9c16d6..eb07e5f 100644 --- a/src/main/java/sun/nio/ch/DirectBuffer.java +++ b/src/main/java/sun/nio/ch/DirectBuffer.java @@ -4,10 +4,10 @@ * Stub for JDK internal ckass sun.nio.ch.DirectBuffer. *

* - When crossing compiling for Java SE 7 and 8, this stub class bypasses compiler sun-api - * warnings. + * warnings. * - When crossing compiling for Java SE 9+, the package 'sun.nio.ch' is not exported from - * 'java.base' module. This stub class helps to access the class in compile-time without - * '--add-export' arguments and bypasses sun-api warnings. + * 'java.base' module. This stub class helps to access the class in compile-time without + * '--add-export' arguments and bypasses sun-api warnings. * - Only used methods are exported. * - In test and production runtime, the real class is loaded from boot classpath. */ diff --git a/src/test/java/net/openhft/hashing/CharSequenceAccessTest.java b/src/test/java/net/openhft/hashing/CharSequenceAccessTest.java index d180992..ed07b5f 100644 --- a/src/test/java/net/openhft/hashing/CharSequenceAccessTest.java +++ b/src/test/java/net/openhft/hashing/CharSequenceAccessTest.java @@ -2,15 +2,13 @@ import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assume.assumeTrue; import static java.nio.ByteOrder.*; import static net.openhft.hashing.Primitives.*; +import static org.junit.Assert.*; +import static org.junit.Assume.assumeTrue; public class CharSequenceAccessTest { - static String TEST_STRING = new String(new char[] {0xF0E1,0xD2C3,0xB4A5,0x9687,0xC8E9}); + static String TEST_STRING = new String(new char[]{0xF0E1, 0xD2C3, 0xB4A5, 0x9687, 0xC8E9}); @Test public void testInstanceLE() { @@ -54,37 +52,37 @@ public void testLittleEndian() { final Access access = CharSequenceAccess.charSequenceAccess(LITTLE_ENDIAN); final Access accessR = access.reverseAccess(); - assertEquals( 0x9687B4A5D2C3F0E1L, access.getLong(TEST_STRING, 0)); - assertEquals(0xE99687B4A5D2C3F0L , access.getLong(TEST_STRING, 1)); - assertEquals(0xE1F0C3D2A5B48796L , accessR.getLong(TEST_STRING, 0)); - assertEquals( 0xF0C3D2A5B48796E9L, accessR.getLong(TEST_STRING, 1)); - - assertEquals(unsignedInt( 0xD2C3F0E1), access.getUnsignedInt(TEST_STRING, 0)); - assertEquals(unsignedInt(0xA5D2C3F0 ), access.getUnsignedInt(TEST_STRING, 1)); - assertEquals( 0xD2C3F0E1, access.getInt(TEST_STRING, 0)); - assertEquals(0xA5D2C3F0 , access.getInt(TEST_STRING, 1)); - assertEquals(unsignedInt(0xE1F0C3D2) , accessR.getUnsignedInt(TEST_STRING, 0)); - assertEquals(unsignedInt( 0xF0C3D2A5), accessR.getUnsignedInt(TEST_STRING, 1)); - assertEquals(0xE1F0C3D2 , accessR.getInt(TEST_STRING, 0)); - assertEquals( 0xF0C3D2A5, accessR.getInt(TEST_STRING, 1)); - - assertEquals(unsignedShort( 0xF0E1), access.getUnsignedShort(TEST_STRING, 0)); - assertEquals(unsignedShort(0xC3F0 ), access.getUnsignedShort(TEST_STRING, 1)); - assertEquals((int)(short) 0xF0E1, access.getShort(TEST_STRING, 0)); - assertEquals((int)(short)0xC3F0 , access.getShort(TEST_STRING, 1)); - assertEquals(unsignedShort(0xE1F0 ), accessR.getUnsignedShort(TEST_STRING, 0)); - assertEquals(unsignedShort( 0xF0C3), accessR.getUnsignedShort(TEST_STRING, 1)); - assertEquals((int)(short)0xE1F0 , accessR.getShort(TEST_STRING, 0)); - assertEquals((int)(short) 0xF0C3, accessR.getShort(TEST_STRING, 1)); + assertEquals(0x9687B4A5D2C3F0E1L, access.getLong(TEST_STRING, 0)); + assertEquals(0xE99687B4A5D2C3F0L, access.getLong(TEST_STRING, 1)); + assertEquals(0xE1F0C3D2A5B48796L, accessR.getLong(TEST_STRING, 0)); + assertEquals(0xF0C3D2A5B48796E9L, accessR.getLong(TEST_STRING, 1)); + + assertEquals(unsignedInt(0xD2C3F0E1), access.getUnsignedInt(TEST_STRING, 0)); + assertEquals(unsignedInt(0xA5D2C3F0), access.getUnsignedInt(TEST_STRING, 1)); + assertEquals(0xD2C3F0E1, access.getInt(TEST_STRING, 0)); + assertEquals(0xA5D2C3F0, access.getInt(TEST_STRING, 1)); + assertEquals(unsignedInt(0xE1F0C3D2), accessR.getUnsignedInt(TEST_STRING, 0)); + assertEquals(unsignedInt(0xF0C3D2A5), accessR.getUnsignedInt(TEST_STRING, 1)); + assertEquals(0xE1F0C3D2, accessR.getInt(TEST_STRING, 0)); + assertEquals(0xF0C3D2A5, accessR.getInt(TEST_STRING, 1)); + + assertEquals(unsignedShort(0xF0E1), access.getUnsignedShort(TEST_STRING, 0)); + assertEquals(unsignedShort(0xC3F0), access.getUnsignedShort(TEST_STRING, 1)); + assertEquals((int) (short) 0xF0E1, access.getShort(TEST_STRING, 0)); + assertEquals((int) (short) 0xC3F0, access.getShort(TEST_STRING, 1)); + assertEquals(unsignedShort(0xE1F0), accessR.getUnsignedShort(TEST_STRING, 0)); + assertEquals(unsignedShort(0xF0C3), accessR.getUnsignedShort(TEST_STRING, 1)); + assertEquals((int) (short) 0xE1F0, accessR.getShort(TEST_STRING, 0)); + assertEquals((int) (short) 0xF0C3, accessR.getShort(TEST_STRING, 1)); assertEquals(unsignedByte(0xE1), access.getUnsignedByte(TEST_STRING, 0)); assertEquals(unsignedByte(0xF0), access.getUnsignedByte(TEST_STRING, 1)); - assertEquals((int)(byte)0xE1, access.getByte(TEST_STRING, 0)); - assertEquals((int)(byte)0xF0, access.getByte(TEST_STRING, 1)); + assertEquals((int) (byte) 0xE1, access.getByte(TEST_STRING, 0)); + assertEquals((int) (byte) 0xF0, access.getByte(TEST_STRING, 1)); assertEquals(unsignedByte(0xE1), accessR.getUnsignedByte(TEST_STRING, 0)); assertEquals(unsignedByte(0xF0), accessR.getUnsignedByte(TEST_STRING, 1)); - assertEquals((int)(byte)0xE1, accessR.getByte(TEST_STRING, 0)); - assertEquals((int)(byte)0xF0, accessR.getByte(TEST_STRING, 1)); + assertEquals((int) (byte) 0xE1, accessR.getByte(TEST_STRING, 0)); + assertEquals((int) (byte) 0xF0, accessR.getByte(TEST_STRING, 1)); } @Test @@ -93,22 +91,22 @@ public void testBigEndian() { final Access access = CharSequenceAccess.charSequenceAccess(BIG_ENDIAN); - assertEquals(0xF0E1D2C3B4A59687L , access.getLong(TEST_STRING, 0)); - assertEquals( 0xE1D2C3B4A59687C8L, access.getLong(TEST_STRING, 1)); + assertEquals(0xF0E1D2C3B4A59687L, access.getLong(TEST_STRING, 0)); + assertEquals(0xE1D2C3B4A59687C8L, access.getLong(TEST_STRING, 1)); assertEquals(unsignedInt(0xF0E1D2C3), access.getUnsignedInt(TEST_STRING, 0)); - assertEquals(unsignedInt( 0xE1D2C3B4), access.getUnsignedInt(TEST_STRING, 1)); + assertEquals(unsignedInt(0xE1D2C3B4), access.getUnsignedInt(TEST_STRING, 1)); assertEquals(0xF0E1D2C3, access.getInt(TEST_STRING, 0)); - assertEquals( 0xE1D2C3B4, access.getInt(TEST_STRING, 1)); + assertEquals(0xE1D2C3B4, access.getInt(TEST_STRING, 1)); assertEquals(unsignedShort(0xF0E1), access.getUnsignedShort(TEST_STRING, 0)); - assertEquals(unsignedShort( 0xE1D2), access.getUnsignedShort(TEST_STRING, 1)); - assertEquals((int)(short)0xF0E1, access.getShort(TEST_STRING, 0)); - assertEquals((int)(short) 0xE1D2, access.getShort(TEST_STRING, 1)); + assertEquals(unsignedShort(0xE1D2), access.getUnsignedShort(TEST_STRING, 1)); + assertEquals((int) (short) 0xF0E1, access.getShort(TEST_STRING, 0)); + assertEquals((int) (short) 0xE1D2, access.getShort(TEST_STRING, 1)); assertEquals(unsignedByte(0xF0), access.getUnsignedByte(TEST_STRING, 0)); assertEquals(unsignedByte(0xE1), access.getUnsignedByte(TEST_STRING, 1)); - assertEquals((int)(byte)0xF0, access.getByte(TEST_STRING, 0)); - assertEquals((int)(byte)0xE1, access.getByte(TEST_STRING, 1)); + assertEquals((int) (byte) 0xF0, access.getByte(TEST_STRING, 0)); + assertEquals((int) (byte) 0xE1, access.getByte(TEST_STRING, 1)); } } diff --git a/src/test/java/net/openhft/hashing/City64_1_1_Test.java b/src/test/java/net/openhft/hashing/City64_1_1_Test.java index 474efae..32b8416 100644 --- a/src/test/java/net/openhft/hashing/City64_1_1_Test.java +++ b/src/test/java/net/openhft/hashing/City64_1_1_Test.java @@ -33,7 +33,7 @@ public class City64_1_1_Test { public static Collection data() { ArrayList data = new ArrayList(); for (int len = 0; len < 1025; len++) { - data.add(new Object[] {len}); + data.add(new Object[]{len}); } return data; } diff --git a/src/test/java/net/openhft/hashing/CompactLatin1CharSequenceAccessTest.java b/src/test/java/net/openhft/hashing/CompactLatin1CharSequenceAccessTest.java index d3bfdf3..b2a4b72 100644 --- a/src/test/java/net/openhft/hashing/CompactLatin1CharSequenceAccessTest.java +++ b/src/test/java/net/openhft/hashing/CompactLatin1CharSequenceAccessTest.java @@ -1,6 +1,7 @@ package net.openhft.hashing; import org.junit.Test; + import java.nio.ByteOrder; import static java.nio.ByteOrder.BIG_ENDIAN; @@ -10,51 +11,51 @@ public class CompactLatin1CharSequenceAccessTest { static private final Access access = CompactLatin1CharSequenceAccess.INSTANCE; - static private final byte[] b = { (byte)0xF1, (byte)0xE2, (byte)0xD3, (byte)0xC4, (byte)0xB5 }; + static private final byte[] b = {(byte) 0xF1, (byte) 0xE2, (byte) 0xD3, (byte) 0xC4, (byte) 0xB5}; @Test public void testLE() { assumeTrue(ByteOrder.nativeOrder() == LITTLE_ENDIAN); - assertEquals( 0xC400D300E200F1L, access.getLong(b, 0)); - assertEquals(0xB500C400D300E200L, access.getLong(b, 1)); + assertEquals(0xC400D300E200F1L, access.getLong(b, 0)); + assertEquals(0xB500C400D300E200L, access.getLong(b, 1)); - assertEquals( 0xE200F1, access.getInt(b, 0)); - assertEquals( 0xD300E200, access.getInt(b, 1)); - assertEquals(Primitives.unsignedInt(0xE200F1), access.getUnsignedInt(b, 0)); + assertEquals(0xE200F1, access.getInt(b, 0)); + assertEquals(0xD300E200, access.getInt(b, 1)); + assertEquals(Primitives.unsignedInt(0xE200F1), access.getUnsignedInt(b, 0)); assertEquals(Primitives.unsignedInt(0xD300E200), access.getUnsignedInt(b, 1)); - assertEquals( 0xF1, access.getShort(b, 0)); - assertEquals( (int)(short)0xE200, access.getShort(b, 1)); - assertEquals(Primitives.unsignedShort(0xF1), access.getUnsignedShort(b, 0)); + assertEquals(0xF1, access.getShort(b, 0)); + assertEquals((int) (short) 0xE200, access.getShort(b, 1)); + assertEquals(Primitives.unsignedShort(0xF1), access.getUnsignedShort(b, 0)); assertEquals(Primitives.unsignedShort(0xE200), access.getUnsignedShort(b, 1)); - assertEquals( (int)(byte)0xF1, access.getByte(b, 0)); - assertEquals( 0, access.getByte(b, 1)); + assertEquals((int) (byte) 0xF1, access.getByte(b, 0)); + assertEquals(0, access.getByte(b, 1)); assertEquals(Primitives.unsignedByte(0xF1), access.getUnsignedByte(b, 0)); - assertEquals( 0, access.getUnsignedByte(b, 1)); + assertEquals(0, access.getUnsignedByte(b, 1)); } @Test public void testBE() { assumeTrue(ByteOrder.nativeOrder() == BIG_ENDIAN); - assertEquals(0xF100E200D300C4L, access.getLong(b, 0)); + assertEquals(0xF100E200D300C4L, access.getLong(b, 0)); assertEquals(0xF100E200D300C400L, access.getLong(b, 1)); - assertEquals( 0xF100E2, access.getInt(b, 0)); - assertEquals( 0xF100E200, access.getInt(b, 1)); - assertEquals(Primitives.unsignedInt(0xF100E2), access.getUnsignedInt(b, 0)); + assertEquals(0xF100E2, access.getInt(b, 0)); + assertEquals(0xF100E200, access.getInt(b, 1)); + assertEquals(Primitives.unsignedInt(0xF100E2), access.getUnsignedInt(b, 0)); assertEquals(Primitives.unsignedInt(0xF100E200), access.getUnsignedInt(b, 1)); - assertEquals( 0xF1, access.getShort(b, 0)); - assertEquals( (int)(short)0xF100, access.getShort(b, 1)); - assertEquals(Primitives.unsignedShort(0xF1), access.getUnsignedShort(b, 0)); + assertEquals(0xF1, access.getShort(b, 0)); + assertEquals((int) (short) 0xF100, access.getShort(b, 1)); + assertEquals(Primitives.unsignedShort(0xF1), access.getUnsignedShort(b, 0)); assertEquals(Primitives.unsignedShort(0xF100), access.getUnsignedShort(b, 1)); - assertEquals( 0, access.getByte(b, 0)); - assertEquals( (int)(byte)0xF1, access.getByte(b, 1)); - assertEquals( 0, access.getUnsignedByte(b, 0)); + assertEquals(0, access.getByte(b, 0)); + assertEquals((int) (byte) 0xF1, access.getByte(b, 1)); + assertEquals(0, access.getUnsignedByte(b, 0)); assertEquals(Primitives.unsignedByte(0xF1), access.getUnsignedByte(b, 1)); } } diff --git a/src/test/java/net/openhft/hashing/LongHashFunctionTest.java b/src/test/java/net/openhft/hashing/LongHashFunctionTest.java index 9ab229b..70f2664 100644 --- a/src/test/java/net/openhft/hashing/LongHashFunctionTest.java +++ b/src/test/java/net/openhft/hashing/LongHashFunctionTest.java @@ -21,12 +21,8 @@ import java.nio.ByteOrder; import java.util.Arrays; -import static java.nio.ByteOrder.BIG_ENDIAN; -import static java.nio.ByteOrder.LITTLE_ENDIAN; -import static java.nio.ByteOrder.nativeOrder; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.fail; +import static java.nio.ByteOrder.*; +import static org.junit.Assert.*; public class LongHashFunctionTest { @@ -56,7 +52,7 @@ private static void testVoid(LongHashFunction f, long eh, int len) { public static void testBoolean(LongHashFunction f, int len) { if (len != 1) return; - for (boolean b : new boolean[] {true, false}) { + for (boolean b : new boolean[]{true, false}) { boolean[] a = {b}; long single = f.hashBoolean(b); long array = f.hashBooleans(a); @@ -161,17 +157,17 @@ private static void testByteBuffers(LongHashFunction f, long eh, int len, ByteBu bb.order(LITTLE_ENDIAN); assertEquals("byte buffer little endian", eh, f.hashBytes(bb)); ByteBuffer bb2 = ByteBuffer.allocate(len + 2).order(LITTLE_ENDIAN); - ((Buffer)bb2).position(1); + ((Buffer) bb2).position(1); bb2.put(bb); assertEquals("byte buffer little endian off len", eh, f.hashBytes(bb2, 1, len)); - ((Buffer)bb.order(BIG_ENDIAN)).clear(); + ((Buffer) bb.order(BIG_ENDIAN)).clear(); assertEquals("byte buffer big endian", eh, f.hashBytes(bb)); bb2.order(BIG_ENDIAN); assertEquals("byte buffer big endian off len", eh, f.hashBytes(bb2, 1, len)); - ((Buffer)bb.order(nativeOrder())).clear(); + ((Buffer) bb.order(nativeOrder())).clear(); } private static void testCharSequences(LongHashFunction f, long eh, int len, ByteBuffer bb) { @@ -201,7 +197,7 @@ private static void testCharSequences(LongHashFunction f, long eh, int len, Byte long toCharSequenceActual = f.hash(s2, Access.toCharSequence(nonNativeOrder()), 0, len); assertEquals("string wrong order fixed", eh, toCharSequenceActual); - ((Buffer)bb.order(nativeOrder())).clear(); + ((Buffer) bb.order(nativeOrder())).clear(); } } } @@ -210,7 +206,7 @@ private static void testMemory(LongHashFunction f, long eh, int len, ByteBuffer ByteBuffer directBB = ByteBuffer.allocateDirect(len); directBB.put(bb); assertEquals("memory", eh, f.hashMemory(Util.getDirectBufferAddress(directBB), len)); - ((Buffer)bb).clear(); + ((Buffer) bb).clear(); } private static void testLatin1String(LongHashFunction f, byte[] data) { @@ -219,7 +215,7 @@ private static void testLatin1String(LongHashFunction f, byte[] data) { String inputStr = new String(data, "ISO-8859-1"); char[] inputCharArray = new char[data.length]; for (int i = 0; i < data.length; ++i) { - inputCharArray[i] = (char)(data[i]&0xFF); + inputCharArray[i] = (char) (data[i] & 0xFF); } assertEquals(f.hashChars(inputStr), f.hashChars(inputCharArray)); } catch (Exception e) { diff --git a/src/test/java/net/openhft/hashing/LongTupleHashFunctionTest.java b/src/test/java/net/openhft/hashing/LongTupleHashFunctionTest.java index a30e1e0..ec662a1 100644 --- a/src/test/java/net/openhft/hashing/LongTupleHashFunctionTest.java +++ b/src/test/java/net/openhft/hashing/LongTupleHashFunctionTest.java @@ -5,17 +5,11 @@ import java.nio.ByteOrder; import java.util.Arrays; -import static java.nio.ByteOrder.BIG_ENDIAN; -import static java.nio.ByteOrder.LITTLE_ENDIAN; -import static java.nio.ByteOrder.nativeOrder; +import static java.nio.ByteOrder.*; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsNot.not; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.Assert.*; public class LongTupleHashFunctionTest { @@ -92,7 +86,7 @@ private static void testVoid(LongTupleHashFunction f, long[] eh, int len) { public static void testBoolean(LongTupleHashFunction f, int len) { if (len != 1) return; - for (boolean b : new boolean[] {true, false}) { + for (boolean b : new boolean[]{true, false}) { boolean[] a = {b}; long[] single = f.hashBoolean(b); long[] array = f.hashBooleans(a); @@ -197,17 +191,17 @@ private static void testByteBuffers(LongTupleHashFunction f, long[] eh, int len, bb.order(LITTLE_ENDIAN); assertArrayEquals("byte buffer little endian", eh, f.hashBytes(bb)); ByteBuffer bb2 = ByteBuffer.allocate(len + 2).order(LITTLE_ENDIAN); - ((Buffer)bb2).position(1); + ((Buffer) bb2).position(1); bb2.put(bb); assertArrayEquals("byte buffer little endian off len", eh, f.hashBytes(bb2, 1, len)); - ((Buffer)bb.order(BIG_ENDIAN)).clear(); + ((Buffer) bb.order(BIG_ENDIAN)).clear(); assertArrayEquals("byte buffer big endian", eh, f.hashBytes(bb)); bb2.order(BIG_ENDIAN); assertArrayEquals("byte buffer big endian off len", eh, f.hashBytes(bb2, 1, len)); - ((Buffer)bb.order(nativeOrder())).clear(); + ((Buffer) bb.order(nativeOrder())).clear(); } private static void testCharSequences(LongTupleHashFunction f, long[] eh, int len, ByteBuffer bb) { @@ -237,7 +231,7 @@ private static void testCharSequences(LongTupleHashFunction f, long[] eh, int le long[] toCharSequenceActual = f.hash(s2, Access.toCharSequence(nonNativeOrder()), 0, len); assertArrayEquals("string wrong order fixed", eh, toCharSequenceActual); - ((Buffer)bb.order(nativeOrder())).clear(); + ((Buffer) bb.order(nativeOrder())).clear(); } } } @@ -246,7 +240,7 @@ private static void testMemory(LongTupleHashFunction f, long[] eh, int len, Byte ByteBuffer directBB = ByteBuffer.allocateDirect(len); directBB.put(bb); assertArrayEquals("memory", eh, f.hashMemory(Util.getDirectBufferAddress(directBB), len)); - ((Buffer)bb).clear(); + ((Buffer) bb).clear(); } private static void testLatin1String(LongTupleHashFunction f, byte[] data) { @@ -255,11 +249,11 @@ private static void testLatin1String(LongTupleHashFunction f, byte[] data) { String inputStr = new String(data, "ISO-8859-1"); char[] inputCharArray = new char[data.length]; for (int i = 0; i < data.length; ++i) { - inputCharArray[i] = (char)(data[i]&0xFF); + inputCharArray[i] = (char) (data[i] & 0xFF); } char[] inputCharArray2 = new char[data.length]; for (int i = 0; i < data.length; ++i) { - inputCharArray2[i] = (char)(data[i]&0xFF); + inputCharArray2[i] = (char) (data[i] & 0xFF); } assertArrayEquals(f.hashChars(inputStr), f.hashChars(inputCharArray)); } catch (Exception e) { diff --git a/src/test/java/net/openhft/hashing/MetroHashTest.java b/src/test/java/net/openhft/hashing/MetroHashTest.java index 70dc196..ae90aa9 100644 --- a/src/test/java/net/openhft/hashing/MetroHashTest.java +++ b/src/test/java/net/openhft/hashing/MetroHashTest.java @@ -40,32 +40,32 @@ public void test(LongHashFunction metro, long[] hashesOfLoopingBytes) { LongHashFunctionTest.test(metro, data, hashesOfLoopingBytes[len]); } -/** - * Test data is output of the following program with metrohash implementation - * from https://github.com/jandrewrogers/MetroHash - * - * #include "metrohash64.h" - * #include - * #include - * - * int main() { - * uint8_t* x = (uint8_t*) malloc(8); - * uint8_t* src = (uint8_t*) malloc(1024); - * for (int i = 0; i < 1024; i++) { - * src[i] = (uint8_t) i; - * } - * printf("without seeds\n"); - * for (int i = 0; i <= 1024; i++) { - * MetroHash64::Hash(src, i, x); - * printf("%lldL,\n", *((long long *)x)); - * } - * printf("with seed 42\n"); - * for (int i = 0; i <= 1024; i++) { - * MetroHash64::Hash(src, i, x, 42); - * printf("%lldL,\n", *((long long *)x)); - * } - * } - */ + /** + * Test data is output of the following program with metrohash implementation + * from https://github.com/jandrewrogers/MetroHash + *

+ * #include "metrohash64.h" + * #include + * #include + *

+ * int main() { + * uint8_t* x = (uint8_t*) malloc(8); + * uint8_t* src = (uint8_t*) malloc(1024); + * for (int i = 0; i < 1024; i++) { + * src[i] = (uint8_t) i; + * } + * printf("without seeds\n"); + * for (int i = 0; i <= 1024; i++) { + * MetroHash64::Hash(src, i, x); + * printf("%lldL,\n", *((long long *)x)); + * } + * printf("with seed 42\n"); + * for (int i = 0; i <= 1024; i++) { + * MetroHash64::Hash(src, i, x, 42); + * printf("%lldL,\n", *((long long *)x)); + * } + * } + */ public static final long[] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = { 8097384203561113213L, diff --git a/src/test/java/net/openhft/hashing/MurmurHash3Test.java b/src/test/java/net/openhft/hashing/MurmurHash3Test.java index 38d08c2..ff26bcd 100644 --- a/src/test/java/net/openhft/hashing/MurmurHash3Test.java +++ b/src/test/java/net/openhft/hashing/MurmurHash3Test.java @@ -20,10 +20,9 @@ import com.google.common.hash.Hashing; import org.junit.Test; -import java.util.Arrays; -import java.util.Random; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.util.Arrays; public class MurmurHash3Test { diff --git a/src/test/java/net/openhft/hashing/OriginalFarmHashTest.java b/src/test/java/net/openhft/hashing/OriginalFarmHashTest.java index de35ed8..3ae50f2 100644 --- a/src/test/java/net/openhft/hashing/OriginalFarmHashTest.java +++ b/src/test/java/net/openhft/hashing/OriginalFarmHashTest.java @@ -31,6 +31,7 @@ public class OriginalFarmHashTest { static final int kDataSize = 1 << 20; static final int kTestSize = 300; static final byte[] data = new byte[kDataSize]; + static { long a = 9; long b = 777; @@ -79,10 +80,10 @@ static long SEED1(int offset) { @Test public void testNa() { int expectedIndex = 0, i = 0; - for ( ; i < kTestSize - 1; i++) { + for (; i < kTestSize - 1; i++) { expectedIndex = testNa(i * i, i, expectedIndex); } - for ( ; i < kDataSize; i += i / 7) { + for (; i < kDataSize; i += i / 7) { expectedIndex = testNa(0, i, expectedIndex); } testNa(0, kDataSize, expectedIndex); @@ -110,10 +111,10 @@ static int testNa(int offset, int len, int expectedIndex) { @Test public void testUo() { int expectedIndex = 0, i = 0; - for ( ; i < kTestSize - 1; i++) { + for (; i < kTestSize - 1; i++) { expectedIndex = testUo(i * i, i, expectedIndex); } - for ( ; i < kDataSize; i += i / 7) { + for (; i < kDataSize; i += i / 7) { expectedIndex = testUo(0, i, expectedIndex); } testUo(0, kDataSize, expectedIndex); @@ -138,7 +139,7 @@ public void testUoGo() { for (Object[] g : GOLDEN_64) { long hash = (Long) g[0]; try { - byte[] s = ((String)g[1]).getBytes("US-ASCII"); + byte[] s = ((String) g[1]).getBytes("US-ASCII"); Assert.assertEquals(hash, LongHashFunction.farmUo().hashBytes(s)); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); diff --git a/src/test/java/net/openhft/hashing/PrimitivesTest.java b/src/test/java/net/openhft/hashing/PrimitivesTest.java index 4563479..102d8b7 100644 --- a/src/test/java/net/openhft/hashing/PrimitivesTest.java +++ b/src/test/java/net/openhft/hashing/PrimitivesTest.java @@ -2,9 +2,7 @@ import org.junit.Test; -import static java.nio.ByteOrder.BIG_ENDIAN; -import static java.nio.ByteOrder.LITTLE_ENDIAN; -import static java.nio.ByteOrder.nativeOrder; +import static java.nio.ByteOrder.*; import static org.junit.Assert.assertEquals; import static org.junit.Assume.assumeTrue; diff --git a/src/test/java/net/openhft/hashing/UnsafeAccessTest.java b/src/test/java/net/openhft/hashing/UnsafeAccessTest.java index dcd7f36..a91e696 100644 --- a/src/test/java/net/openhft/hashing/UnsafeAccessTest.java +++ b/src/test/java/net/openhft/hashing/UnsafeAccessTest.java @@ -6,9 +6,7 @@ import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; -import static java.nio.ByteOrder.BIG_ENDIAN; -import static java.nio.ByteOrder.LITTLE_ENDIAN; -import static java.nio.ByteOrder.nativeOrder; +import static java.nio.ByteOrder.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotSame; import static org.junit.Assume.assumeTrue; @@ -18,7 +16,7 @@ public class UnsafeAccessTest { @Parameters public static Object[] data() { - return new Object[] { UnsafeAccess.INSTANCE, UnsafeAccess.OLD_INSTANCE }; + return new Object[]{UnsafeAccess.INSTANCE, UnsafeAccess.OLD_INSTANCE}; } @Parameter @@ -54,7 +52,7 @@ public void testUnsafeAccess() { } { - final byte[] b = new byte[]{(byte)0xF4, 0x5D}; + final byte[] b = new byte[]{(byte) 0xF4, 0x5D}; assertEquals((int) b[0], unsafe.getByte(b, UnsafeAccess.BYTE_BASE)); assertEquals((int) b[1], unsafe.getByte(b, UnsafeAccess.BYTE_BASE + 1)); assertEquals(Primitives.unsignedByte(b[0]), unsafe.getUnsignedByte(b, UnsafeAccess.BYTE_BASE)); @@ -84,7 +82,7 @@ public void testUnsafeAccessUnalignLE() { } { - final byte[] b = new byte[]{(byte)0xF4, 0x5D}; + final byte[] b = new byte[]{(byte) 0xF4, 0x5D}; assertEquals((int) 0x5D, unsafe.getByte(b, UnsafeAccess.BYTE_BASE + 1)); assertEquals(Primitives.unsignedByte(0x5D), unsafe.getUnsignedByte(b, UnsafeAccess.BYTE_BASE + 1)); } @@ -112,7 +110,7 @@ public void testUnsafeAccessUnalignBE() { } { - final byte[] b = new byte[]{(byte)0xF4, 0x5D}; + final byte[] b = new byte[]{(byte) 0xF4, 0x5D}; assertEquals((int) 0x5D, unsafe.getByte(b, UnsafeAccess.BYTE_BASE + 1)); assertEquals(Primitives.unsignedByte(0x5D), unsafe.getUnsignedByte(b, UnsafeAccess.BYTE_BASE + 1)); } diff --git a/src/test/java/net/openhft/hashing/WyHashTest.java b/src/test/java/net/openhft/hashing/WyHashTest.java index b56a8ed..e6bbb6e 100644 --- a/src/test/java/net/openhft/hashing/WyHashTest.java +++ b/src/test/java/net/openhft/hashing/WyHashTest.java @@ -36,7 +36,7 @@ public void test(LongHashFunction wyHash, long[] hashesOfLoopingBytes) { for (int j = 0; j < data.length; j++) { data[j] = (byte) j; } - LongHashFunctionTest .test(wyHash, data, hashesOfLoopingBytes[len]); + LongHashFunctionTest.test(wyHash, data, hashesOfLoopingBytes[len]); } /** @@ -67,2058 +67,2058 @@ public void test(LongHashFunction wyHash, long[] hashesOfLoopingBytes) { * <\pre> */ public static final long[] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = { - 0L, - -1498634010482895780L, - 6867524088326895660L, - 269206059098007870L, - -4886887581681798391L, - 3928433339794945779L, - 4316332308770427980L, - 2615655046588972881L, - 1900500844844731087L, - -937305021312369991L, - -8876585030919011822L, - -8568794208905766378L, - -7560937143015008723L, - 8498693544545256400L, - -2419449035530425220L, - 3329598615825088111L, - 1210853880152044769L, - 8924597104910535362L, - -3295737048979845383L, - -2077067637562286605L, - -1011034785208955521L, - -7140824109018505684L, - 1461819519553440317L, - 6436392319919688449L, - 9118839121464630705L, - -2917786468093466294L, - 504959295268162643L, - 6865609001872362604L, - 1331148763751586565L, - 5194938495997054762L, - 2665520052525504553L, - 276933320889118143L, - 4905118367340856460L, - 2074482748007873417L, - 33988220393155982L, - -1886632289327107396L, - 1961403923654424835L, - -2534868615627330587L, - 3462266467782463357L, - 7919120157912374187L, - -89126594710480197L, - -7042017916137112880L, - -7849604837443256405L, - 7183458575501572456L, - 5774439312980039315L, - -6565296715949686971L, - 8732951222530004068L, - 1900291206658974389L, - 7866927889483112715L, - 7328496947698938651L, - -8414002129273563525L, - -7507611883654277681L, - 1048916663450809742L, - 2886294206178088467L, - -8219721567024751529L, - 7725050882468238784L, - 3754847308658349557L, - -8413245846548203550L, - -3076479495605594465L, - -3121134529382168760L, - -8550177436169846333L, - -7635987039377529922L, - -5313723440094816160L, - -4177524123888580462L, - -1094315098609866806L, - 6577764665351221181L, - -7451684539960092493L, - 7061343558406187853L, - 871230336086645006L, - 6267395254690800101L, - 3141612453381470612L, - -8952205469861911532L, - 4767899395611465842L, - 7630515440353450329L, - -4985889236947520435L, - 4353614766406020339L, - 6903511086527962847L, - -4820634093847096378L, - 6452963341373240239L, - 8594720565063264398L, - -299303866433612643L, - 5948128939845193681L, - -6327319179549631842L, - 1661386658896970098L, - -387220913420000811L, - -9142963141159743830L, - -3957881162477548163L, - 7835579812652104509L, - -2179101728939025569L, - 1409259865195553628L, - 3329985067144149794L, - -4622006820323901246L, - -5489854929168527846L, - -4192684064311628792L, - -5930581590656743655L, - -8741322520672067800L, - -2532269067473596306L, - 2794660858881925622L, - -1660759460598522315L, - 4890293817527089205L, - 5011673154728255657L, - -2422404023490478452L, - -5823317675052947328L, - -1972153552478886407L, - 855875383009846790L, - 4539038924804919368L, - -3429781972296775524L, - -933120655172824074L, - 5340485644774899680L, - 1224352437979479512L, - -4247440279147522491L, - -2847066616858361472L, - 7303140713793758036L, - 177699726658531463L, - 7295117342573216781L, - -4960156472424071480L, - 8110395551125556627L, - 4814552517606903675L, - -5765636104388650769L, - -6413724172541333072L, - 8304733428601507939L, - 143869199545215598L, - -3363348007324106812L, - 778524423687782971L, - -3153748338449493859L, - 4072736150578731467L, - 2759867216020429817L, - 2328407206204809068L, - 3183594959296292673L, - 4716260652336579034L, - -2306094442378564227L, - 1612703725746980307L, - 9169273487926974528L, - 1221567220993136926L, - -1580158544177522978L, - -7978689145799920414L, - -8935536723451615449L, - -5386522443941349619L, - -2260007907190275450L, - -6109689112492865066L, - -7269857258080875354L, - 120767029125806560L, - 8179378742614718442L, - -1054596932535254740L, - -4819959080878920419L, - 6750654725339344085L, - 839742699455186248L, - 6590957420819328903L, - -8962195670723273636L, - 2970575532853857622L, - -2914121199343336253L, - -4719180678962776867L, - -3866803542764213986L, - 7340712279894103874L, - 665981095963825401L, - -7610703223561970702L, - -2285269148746390312L, - -7903336846335812333L, - 7602163920871488336L, - -2475707530835373762L, - 6488428233646685175L, - 781770467078860396L, - -1896921154761119070L, - 3650082028082002274L, - 1859676323486474137L, - -9056242232568275385L, - -1916274702525507105L, - -3359763315783254668L, - -6899438582509090070L, - -7391229595698815015L, - 7793799255007638001L, - -4654796168571058118L, - -9069457371238954514L, - -9079499580790007240L, - -2167538533996933224L, - -5375580275118212442L, - 1932479471587420530L, - 463274931357170593L, - -3434738247190694006L, - 8225681262889934868L, - 670972606916628978L, - -7016577201793262587L, - 9186141629236930525L, - -7494961908382494386L, - 6018069173542321620L, - 3178094810629815034L, - 4206446522733994268L, - -6087839594407260931L, - 3028792124204271051L, - -5992000926787926144L, - -6045285586180402268L, - -2566939030601076745L, - -6419778085488192839L, - -5937870815253811034L, - 3037623662402648617L, - 8475134681257527331L, - 7525467631675910914L, - -2155136652979576665L, - -8863297785379055796L, - -3708604617726301534L, - -1690991326769386459L, - -4914650490954752560L, - -3651000998051367684L, - 2310224359054007710L, - 6467643434506892008L, - -4675387411483580919L, - 1539479589290018260L, - -1317482399971130537L, - 4787089544028336616L, - -817342235353043974L, - 9005897661744065787L, - 1698757063019545437L, - -7450744880655832349L, - 941242980692041666L, - 3855717121175377711L, - 1838418961320954867L, - 7906600640157184104L, - 143774240320811355L, - -5033235558726049955L, - -3733441418159723230L, - 6322249537999722411L, - -3599749198660319070L, - 7881889296519703891L, - 8772851375938262713L, - -3694154014800677764L, - 5483806649985491869L, - 7467568598910778939L, - -839413141520398979L, - 1922118942992405635L, - 5178389178007203495L, - -2131625735310863702L, - -5210713408719608360L, - 969214743442701574L, - -6694519095627761288L, - -3987528749564960054L, - 6145126602437587352L, - -3312790047326848561L, - -5928158217897491190L, - -163692375920080658L, - -4638104573766795427L, - -8806888994476878747L, - -5569512305780637370L, - 1905174746960402451L, - -8994865683955938409L, - 6363190415094303315L, - -819892343899481166L, - 4997088889036354237L, - 7165251770996374856L, - 2252387190424353838L, - 3749847241214246299L, - 7255309255472237037L, - 4672295531818402039L, - -2560356144353793581L, - -2883403067265782436L, - 1079945501265719009L, - -4510676817588967577L, - 373333767776611969L, - -5012601232582215618L, - 2359976143593903713L, - -219011861965226894L, - 76910311444724969L, - 2854997659137560722L, - -6663673552428958663L, - 1647372533507817437L, - -3677652995772257250L, - 1062322309494793766L, - 3997004911860361768L, - -6239801180306730115L, - 7679085503289673770L, - 1937634364969511157L, - 5848969401602626006L, - 6881011614306732306L, - -1181711090074996330L, - 9115958678061403357L, - -4697019334186712846L, - -7555505080733309776L, - 833987302221784302L, - 5435944218394230630L, - 6255423471362246568L, - -4754437678222079801L, - 4816793278931948413L, - 1100877215282697461L, - -8016274804264066913L, - -7426166309912307238L, - 4954658046266531508L, - -4883068330523614006L, - 7317707222197692142L, - -132182832923876333L, - -8068825386408665062L, - 4223343479296349312L, - -8975167582022794209L, - 121044807630038334L, - -6383751162555570203L, - -8622829604115563764L, - -5344448720560932522L, - -5623514837754212750L, - 5730174855784677314L, - 3652462989937797830L, - 4478407032758117542L, - 2265833848570320784L, - 6271663588896592981L, - -8981268861954876981L, - 2199940822940402275L, - -3590335709696386659L, - -6646866007057749522L, - 933450190390074330L, - -1705940515687714841L, - 884927789464592510L, - 7732852775367821028L, - -1725008633709952850L, - 3394484383328726796L, - 6799292447107791901L, - 4773322126911057201L, - -8847524026119006559L, - 1601292087637309633L, - 9085231169106063244L, - -1810226490203477297L, - 3740885817651637744L, - -7385020022373289763L, - 2121348550441645292L, - -8934827205753906340L, - 2329866036041432354L, - -227251566650479794L, - 778635064663790602L, - -5472060023053535116L, - -321365152251518886L, - 3413015614360083800L, - 6854233750120825103L, - -8179957420127792439L, - 7639860843374003692L, - -3294365432579777001L, - 7552965644538813699L, - -6829073195148823177L, - -6544243814787582018L, - 3276872521860349837L, - 1262482336572979429L, - -6035485817914735217L, - 7123327863090630643L, - -1419575113783159041L, - 4628009131887144546L, - 2592000227149193793L, - -5446709712701171970L, - -4786623131259234045L, - -2209160773748122650L, - 8047313604406463713L, - 2928998992221512765L, - 8881744382098607154L, - 5910178969134356556L, - 2892684451843776864L, - -7070070413419488908L, - 1140959062136881244L, - -8078877408786009860L, - 5222805670098495052L, - 1324778166912833091L, - 7845644310752162054L, - 6958124637538105999L, - -1400888392648874523L, - 2109573135688128455L, - -7865948962736451119L, - 4676890351917403373L, - 3174741654796657218L, - 514620636603694596L, - -5843197233618027131L, - -8822533246164651619L, - 7073040785885419375L, - -2228372994944279357L, - -979163503523055821L, - -6159677857222198592L, - 8520855780725828084L, - 4467908031177966524L, - 4623181254618087867L, - -7383960780180519764L, - 239794897939583881L, - -2449501378631335133L, - -9114494545950113117L, - -8576114508943907464L, - 7504752277411331892L, - -7009950139050754470L, - -7202878339609803777L, - 3502505583014180224L, - 3951294951154157069L, - 7576089410756827288L, - -4992190452267503827L, - 3759298924972701902L, - 5361054523231489156L, - 211310386754363706L, - -6228856565314106146L, - 680474239388747542L, - 2183261167073018417L, - 3717345151222475163L, - 8772076500587548312L, - 4345221692547451466L, - 1138257226251182865L, - -2662436603566678639L, - -4926523876409822165L, - -3678204040905789269L, - 8860732609728455709L, - 6897346961138467370L, - -1338981596745710341L, - -8468953950219880235L, - 486233297899205409L, - 6673618507643695244L, - 1938737376496949348L, - 2507410887406001878L, - -3144439725476898055L, - -636790656650957308L, - 4344459600416585073L, - 8802289277757075229L, - -1379964110832028405L, - 3060435899170352150L, - -2801307070927302409L, - -7124182447926601667L, - -7426433529387563337L, - 7001977894058124773L, - 3831629918356470166L, - -7304530994934688959L, - 7754766126986449104L, - -46130394912060400L, - -8185025239564030663L, - -6956120752394147061L, - 4788947004304391335L, - -1735188894957188142L, - 9113463202794835297L, - 9061503384633795978L, - 3807163083218760203L, - -2329524236876369592L, - 8363142198304187431L, - 4935678682189220391L, - -6502593394044097632L, - 9064904356860480362L, - -2044134484905048187L, - 8567519794665060422L, - 3904525302336061297L, - -1494404137865570930L, - -5818134796948330499L, - 8916224465542753907L, - -6810040832909920013L, - 7300268571307893571L, - 8665822462022449768L, - -130646649469545334L, - 8931475468018250160L, - -2817889287241953373L, - -2752837956949520680L, - -1276654552752920573L, - -2251442540884890384L, - -839799567481138562L, - 2986595498063065529L, - 7592128662766254437L, - 5065431482109049471L, - 3052000465060381141L, - 8064475279897785235L, - 7316665605154791806L, - -7296124855087242119L, - -1068075826697136964L, - 1770213836059184427L, - 6802179540194069850L, - 5235498833141060330L, - -8408647861923123811L, - -8554824869230440474L, - 7743295190330547469L, - 6188344344114106969L, - 8228222936284833122L, - 3344247964190287149L, - 414458000971249569L, - -2223421794494123215L, - 119196072452533464L, - 1767473452281958193L, - 5414804141160961127L, - -6164986093592204309L, - -6945097172273522587L, - 7543678863267970809L, - 5972029304048115321L, - 7964352772558153769L, - -8031602489285468891L, - 4513387372558218399L, - -4317501704056493461L, - -274621052405989180L, - 7357459993975469423L, - -1045104405025437444L, - 8789089337669501295L, - -1542665393152510095L, - -5503352729676411061L, - 454066729485099003L, - -4605997634839849907L, - 7986133233466526795L, - 7797356799500954521L, - -9136756413477760050L, - -3352377497517747454L, - -7663557526205276831L, - -1525996382926367358L, - 6802076880476427490L, - -6954802694827637538L, - -8255048613760674037L, - -5526865146075990207L, - -8041208983843583602L, - -2876214926964143851L, - -4567575438614223896L, - 8420564950974772325L, - -4468508733028315993L, - 2158430745359670554L, - -5782727846185414792L, - -3874464451992878487L, - -8557153996715396413L, - -8661029592684774411L, - -4150741558733167704L, - 4770959381850533581L, - -1372013076694700751L, - 7324757985668456281L, - 5602798167879679886L, - 7096916745991890202L, - 3359546006805092444L, - -5934158002733550535L, - 3518079055124118324L, - 3891916644964858524L, - -784545090218957019L, - 8609087702173814141L, - -4214391733469045745L, - -2044858518039349251L, - -3293020846953619138L, - -7669901992597447071L, - -5672416569520217737L, - -3662648759277482540L, - 7169982674540677627L, - -5034338530874716914L, - -4364910862609957183L, - 7039463956727691070L, - 4376009824957522714L, - 313781735218274235L, - -8374050652661964404L, - 245866763156781213L, - 7728750319168662084L, - 594262726005822013L, - 7249071001552727284L, - 6347219246484821270L, - 6926202384981930971L, - 412730668885611257L, - 462335472710927109L, - -348263357460866746L, - 2609062719003263340L, - 1486600821422386160L, - 4132108509971674644L, - 8030540528138614735L, - 4390114767626197726L, - 910347911083267698L, - 4296150444361133712L, - 5908327276875316267L, - 6462269834278773298L, - 1022138366617103631L, - 5383154957747795010L, - 5699575167827705734L, - -2652265514146457472L, - 2238012648012330901L, - -5288285844452580653L, - -2216751023690323971L, - -1798254526639229052L, - 8315911965214904362L, - -563311534821832764L, - -1984298076611665046L, - 7341064198541676544L, - 3795556264919263871L, - -881121796727972887L, - -2490810657935140123L, - 6330994053097077495L, - 1735731862607083753L, - 1821412119760767989L, - -4980141494405310L, - -5081188792462627828L, - -968905527778495175L, - 8787413501897229149L, - 6443042663738607800L, - 3692053332344295218L, - -2382648731027216801L, - 5921028055250520509L, - -4441446372395233901L, - 8057250897470973794L, - -2179625882359143302L, - -4585983332243873847L, - 2947899043243289973L, - -3598625264816669494L, - 7399975594911733454L, - 8846907058100841405L, - 8603925306148488337L, - 8723738803991223798L, - 5322899334586289468L, - 980873212211856324L, - 1004635762793822977L, - -2140100049088182929L, - -3651897446664191337L, - -1874000194611339405L, - 583292569907066994L, - 1976990985958368945L, - -9218950396095831894L, - -3373076707808283751L, - -5833521315607870794L, - 3429301542190478141L, - -5779101479993755753L, - -3292515863222404618L, - -734356228269251634L, - -1419711834445978806L, - 4791895985462274442L, - 558659404424630665L, - 4275995064472140735L, - 7226750437651616111L, - 5615235292948993742L, - 4861367471360311948L, - 4049264481777356211L, - -1835014487079257912L, - 4979204155403334102L, - 1560749888033433035L, - 905000432154591788L, - 2652083709010751184L, - -434390227817650528L, - -3344931822017511339L, - -4822779910956367280L, - 5882026350853463756L, - 5891977867625769091L, - 2576050208155010377L, - -6619518348855378096L, - -5742844076219814181L, - -1914025252482891199L, - 5421866639996215069L, - 7835065614735292470L, - 6475952342457673167L, - 4955638233787312652L, - 1871081664582907788L, - -7245345286793459755L, - -3526808804006913310L, - 8344018619352798022L, - 5358291849312032011L, - -6703839318935180537L, - -6055000653146022613L, - -4547726197375295714L, - -2022691831043772930L, - 6905477133149069142L, - 5578750882894839351L, - -2144291497652708501L, - 4762703426605093736L, - -5891027977685165043L, - -4718456023150759710L, - 2043414443352475790L, - -4859905028662199142L, - -5557172942093408989L, - 4188007248401731314L, - -2942301800843817532L, - -7954850101179530301L, - 4495970396795510187L, - 6186348734301669790L, - -3001408455591637606L, - -8982053599214642216L, - 3206742202353249401L, - -313214205344900099L, - 4889646506758624956L, - -8388345116324930401L, - -7881544699619548038L, - 1635696647773999186L, - 7402207885754426706L, - 4891433307203901702L, - -4902077413549687845L, - -5143362415788346631L, - -4439682815321989946L, - -9042829490377265502L, - -4792104448908161508L, - -6627704780170319053L, - -5929099532414229375L, - -2106815749065875905L, - 7153802770224100626L, - 6823686413158082729L, - 1694613412884784670L, - -4006378366105720051L, - 3578159103226821407L, - -1734412197339646213L, - -7830870208911511566L, - -5772771500325183897L, - -6370961521433155442L, - -441749519334552646L, - 1412754462081697221L, - 8641432394145297452L, - -4975119815461720445L, - 3065463668829511567L, - -1417732062874945313L, - -8665490603267793267L, - 7087497419346604712L, - -1054219113545905941L, - -1315389530554573357L, - 7307121779722859187L, - 2145881449095507057L, - -1356311243412327435L, - -1586722954636622149L, - -2596336211110400075L, - -3215891778864924520L, - 2985606461750734808L, - 4692985241349436947L, - -7071521356811106236L, - 987506433534876222L, - 742743288878802279L, - -7582066902960079495L, - -2199576919602302097L, - -4292471260346290085L, - 7557016375506342717L, - -174092040409188492L, - 6491426317028063034L, - 8822682594036660801L, - 7173417784955207190L, - 8551647075273107302L, - -7644205156880731114L, - 2369403682692200990L, - -6106179001069207874L, - 4406129042862978293L, - -5294299708922784965L, - 4517194244669198236L, - 5935865739771554409L, - -148579357454083417L, - -5274315200034319889L, - -5097950017153595353L, - -3022334830850024229L, - -6777482830421353059L, - -2313967150562967720L, - -1391991890442893937L, - -868882361960329098L, - -4058598280032086693L, - -2072498290023372165L, - -2078524543685149712L, - -8995602191301155697L, - -9177698560918006329L, - -3896826154277082645L, - -4805811619774811701L, - 4704091919527581969L, - -8267745047895479775L, - 8851711941947232288L, - -7190173558292582252L, - 2840928875881838186L, - -4726327121612974966L, - 4739308903198773507L, - 3567219622550820947L, - 7071819841015279071L, - 1838081917409050236L, - 5764863108848455953L, - -4900908742261783725L, - -9214052328693993926L, - -3738104023508183695L, - 9075020475259263468L, - 2384031765345940148L, - -5444918603598131168L, - -2882755332293334170L, - -5876017912667903002L, - 1468518394398751688L, - -94624357829376694L, - 1502968325367457055L, - 3212228973304759982L, - -6076409951803744617L, - -689621575143754807L, - -7544663587107097008L, - -8464517018621156157L, - -9197647440671761342L, - -1138277308728785000L, - 7911450175654362014L, - -2846463762797468283L, - -5779655457569633261L, - 1229156604453014638L, - -5248062133487718488L, - 1945087454960389231L, - 2291489842271385397L, - 4548491699913654765L, - 4776530359090895890L, - -2392184633655107718L, - -1866462256049641298L, - 3379059210862389839L, - 1324602936428062030L, - 4537114827125131113L, - 952752288945823129L, - 3565038799689635380L, - -4943156879148090116L, - -620677278985252287L, - -5343479831206832325L, - -5942934304939405391L, - -7430408163129035969L, - -8536378671288512743L, - -630422435482211312L, - -4059263730309361295L, - 8362955714824710045L, - 6715535958794722463L, - -4944093219667507205L, - 4750238213300021794L, - -8834529272883383766L, - 928202066153864099L, - 4277678786869773289L, - 5803777088958198033L, - 2532770551571706676L, - 8937228681131524098L, - -4349917458712392154L, - 3600518091981945868L, - 3641253327732529861L, - 2269352593538301269L, - 269968982007354668L, - -9126734426165655944L, - 299251652927012593L, - -2622198051228209602L, - -8324653355422469245L, - -390691951434421313L, - -2377466392094607664L, - -7705538047856565009L, - 4335372426529707859L, - -2498731359403232390L, - 2813626900624072081L, - -4153400007749091122L, - 7328219555534666722L, - -7039010207561583485L, - -7451340093255351815L, - 8300978712927459521L, - 7991017147293573613L, - 7339614609177704490L, - -5125145048677445929L, - -1538654431949953813L, - -3305023236591253586L, - -6649451688833693508L, - -5820953574235680980L, - -912420997561859658L, - -3902860965130038472L, - -4703516784403936152L, - 3949690979346927322L, - -5528618711335454103L, - -2895138419635669572L, - 6284706264052186570L, - 3181053554338548547L, - 8917972201915064935L, - 75545390955492453L, - 6617851455758380376L, - -8707286283526343202L, - 6458946651764889185L, - 2987210920096501853L, - -3929693201880566946L, - -7311177148068531782L, - 4694554226910788398L, - -328680149836377578L, - -6188879516160944336L, - -1439844932334130992L, - 7708794174024674351L, - -4972006945073432467L, - -3162414061439364796L, - 7611809776816354031L, - 7254917564661254243L, - 3667622699015156399L, - -4913423608887015660L, - -6406987107635608389L, - 7035993050305636880L, - 1916243288799539554L, - -6879510021825536938L, - -2337637717379887008L, - 2467748304124499564L, - -3927108882927586500L, - -2369728608878680941L, - 342563431112818562L, - -5912585188049034482L, - -407795551560657970L, - -903691070858875362L, - -2971339966384799256L, - -650451997911266170L, - 5242710773034780732L, - -1758576207105628707L, - -1470978453124678938L, - 2028635970527834903L, - 6815510071666420375L, - -7234436760336244906L, - 6292192056464010286L, - 1442992781227112073L, - 741439802185251252L, - 8259834200418148233L, - -8169078357231916499L, - -1797363372045868164L, - -3466386712830748319L, - 553979734832180798L, - 2513380028887544649L, - 2661079907020837034L, - -5749043704832338332L, - -4746726654147920522L, - 4037149160512845688L, - 8783332493545543365L, - 6975966824887269880L, - 2414109369471474312L, - 5221641322938052740L, - 1045377610832006372L, - 8220190173269826766L, - -4267642609168870565L, - -6726832047984956997L, - 4915477332941388735L, - 6608423042031786987L, - 6581279335256275269L, - -1248042010437529483L, - 2938297630330955554L, - 4806385874000231762L, - -2426409043681964977L, - -3104809890914424604L, - 3239277469128944935L, - -3228874498793910978L, - -5342097497391211924L, - -5044251361276447963L, - 6207287572362362872L, - 6453529115456288086L, - -7761442273817439921L, - -1313531713770046715L, - 8881673399342129140L, - 4733296612672962576L, - -3473666608340546150L, - 8218487469845557336L, - 4700027778130567975L, - -5543249054637254074L, - -1139018312153423389L, - -2628885986060279174L, - -962753284069616419L, - -1977142032804526516L, - 6646177420565083192L, - 8016625832549598730L, - -1342495141337498297L, - 3211076661681150725L, - 7846691090184096603L, - -5609697763635391879L, - 2769843206190578001L, - -5672542928916786367L, - 4598226438051963770L, - -3227148609660772768L, - -3607859173825103520L, - 5670249508182208346L, - -6032039770208777467L, - 2614105956519160427L, - 5083815977140776067L, - -3296597605117180179L, - -7021640596217776934L, - 4650797426085619966L, - 6823311525616632062L, - 7318563146604289182L, - -3249092227795437062L, - -151150995477552393L, - 153136448819291758L, - 443418003145395916L, - 330893611106491728L, - -8176197849722920156L, - -5799839357743111551L, - 2867443686326337937L, - 5834608113617061904L, - -5527344088399014587L, - 1370666271993552626L, - -9013120144216259368L, - 1830815874448486738L, - -3091499273874627758L, - 2439461791078633880L, - -1604733478398884862L, - -2833138167354744622L, - -8845858068800398866L, - 3394332891858442031L, - 3777164890336719073L, - -2607231551899902562L, - 2739493825272673913L, - 6829159159418711593L, - -2509633811118610608L, - 4359413808008559480L, - 8154016792499406661L, - 1004971369233421951L, - -3608591463620078287L, - 4138095872882887017L, - -2603875175400857352L, - -8405872505069427520L, - 1602648447388078826L, - -8268213664821963029L, - -7851183899871800583L, - 7988099858367774014L, - 5236015171155823561L, - -7662486771050598416L, - -892959823376427763L, - -9172278347517696397L, - -3334552067210399222L, - 1963387851673972629L, - 366925093822958196L, - -8737871286507690286L, - -4059561536773198338L, - 5578357435587801257L, - -4737036380408504897L, - -2389650777043999775L, - 4340566577553274925L, - 87873442854751345L, - 4155340801507615439L, - -2055658632596291829L, - 6753511476349576327L, - 6452063849292950509L, - -1603688271352032940L, - 1697703077026901826L, - 5824711473055577279L, - 1379237507098137739L, - -1685127774222319703L, - -3439406616052314190L, - -1744663886940391594L, - -7216395177905133758L, - 8010452920400446284L, - 4766353280757415234L, - 5289169306825991429L, - 8447139631505072923L, - 321854408757186899L, - 3617266287300740708L, - -4787302239589324619L, - -4363130050517248733L, - 7132767988848188413L, - -5874421566019315237L, - -1493418467779572102L, - -1040767190340986459L, - -5719181448516381271L, - 945641378172265342L, - 4317786055883622899L, - -3043053328324478777L, - 7736235059159196619L, - 100300833538974478L, - -3101949869641724204L, - -5639485198324936982L, - -8593145909773483082L, - -7461619124932989195L, - 7184437998425110153L, - 2326528031076754258L, - 6398542587063881263L, - 5121771660090392362L, - 2305396835393933680L, - -1749007542647542275L, - -8460868976489643710L, - 2812416063972701080L, - 7906577727755007976L, - 6878465050504315500L, - -3674658411106758781L, - -1455749094773635190L + 0L, + -1498634010482895780L, + 6867524088326895660L, + 269206059098007870L, + -4886887581681798391L, + 3928433339794945779L, + 4316332308770427980L, + 2615655046588972881L, + 1900500844844731087L, + -937305021312369991L, + -8876585030919011822L, + -8568794208905766378L, + -7560937143015008723L, + 8498693544545256400L, + -2419449035530425220L, + 3329598615825088111L, + 1210853880152044769L, + 8924597104910535362L, + -3295737048979845383L, + -2077067637562286605L, + -1011034785208955521L, + -7140824109018505684L, + 1461819519553440317L, + 6436392319919688449L, + 9118839121464630705L, + -2917786468093466294L, + 504959295268162643L, + 6865609001872362604L, + 1331148763751586565L, + 5194938495997054762L, + 2665520052525504553L, + 276933320889118143L, + 4905118367340856460L, + 2074482748007873417L, + 33988220393155982L, + -1886632289327107396L, + 1961403923654424835L, + -2534868615627330587L, + 3462266467782463357L, + 7919120157912374187L, + -89126594710480197L, + -7042017916137112880L, + -7849604837443256405L, + 7183458575501572456L, + 5774439312980039315L, + -6565296715949686971L, + 8732951222530004068L, + 1900291206658974389L, + 7866927889483112715L, + 7328496947698938651L, + -8414002129273563525L, + -7507611883654277681L, + 1048916663450809742L, + 2886294206178088467L, + -8219721567024751529L, + 7725050882468238784L, + 3754847308658349557L, + -8413245846548203550L, + -3076479495605594465L, + -3121134529382168760L, + -8550177436169846333L, + -7635987039377529922L, + -5313723440094816160L, + -4177524123888580462L, + -1094315098609866806L, + 6577764665351221181L, + -7451684539960092493L, + 7061343558406187853L, + 871230336086645006L, + 6267395254690800101L, + 3141612453381470612L, + -8952205469861911532L, + 4767899395611465842L, + 7630515440353450329L, + -4985889236947520435L, + 4353614766406020339L, + 6903511086527962847L, + -4820634093847096378L, + 6452963341373240239L, + 8594720565063264398L, + -299303866433612643L, + 5948128939845193681L, + -6327319179549631842L, + 1661386658896970098L, + -387220913420000811L, + -9142963141159743830L, + -3957881162477548163L, + 7835579812652104509L, + -2179101728939025569L, + 1409259865195553628L, + 3329985067144149794L, + -4622006820323901246L, + -5489854929168527846L, + -4192684064311628792L, + -5930581590656743655L, + -8741322520672067800L, + -2532269067473596306L, + 2794660858881925622L, + -1660759460598522315L, + 4890293817527089205L, + 5011673154728255657L, + -2422404023490478452L, + -5823317675052947328L, + -1972153552478886407L, + 855875383009846790L, + 4539038924804919368L, + -3429781972296775524L, + -933120655172824074L, + 5340485644774899680L, + 1224352437979479512L, + -4247440279147522491L, + -2847066616858361472L, + 7303140713793758036L, + 177699726658531463L, + 7295117342573216781L, + -4960156472424071480L, + 8110395551125556627L, + 4814552517606903675L, + -5765636104388650769L, + -6413724172541333072L, + 8304733428601507939L, + 143869199545215598L, + -3363348007324106812L, + 778524423687782971L, + -3153748338449493859L, + 4072736150578731467L, + 2759867216020429817L, + 2328407206204809068L, + 3183594959296292673L, + 4716260652336579034L, + -2306094442378564227L, + 1612703725746980307L, + 9169273487926974528L, + 1221567220993136926L, + -1580158544177522978L, + -7978689145799920414L, + -8935536723451615449L, + -5386522443941349619L, + -2260007907190275450L, + -6109689112492865066L, + -7269857258080875354L, + 120767029125806560L, + 8179378742614718442L, + -1054596932535254740L, + -4819959080878920419L, + 6750654725339344085L, + 839742699455186248L, + 6590957420819328903L, + -8962195670723273636L, + 2970575532853857622L, + -2914121199343336253L, + -4719180678962776867L, + -3866803542764213986L, + 7340712279894103874L, + 665981095963825401L, + -7610703223561970702L, + -2285269148746390312L, + -7903336846335812333L, + 7602163920871488336L, + -2475707530835373762L, + 6488428233646685175L, + 781770467078860396L, + -1896921154761119070L, + 3650082028082002274L, + 1859676323486474137L, + -9056242232568275385L, + -1916274702525507105L, + -3359763315783254668L, + -6899438582509090070L, + -7391229595698815015L, + 7793799255007638001L, + -4654796168571058118L, + -9069457371238954514L, + -9079499580790007240L, + -2167538533996933224L, + -5375580275118212442L, + 1932479471587420530L, + 463274931357170593L, + -3434738247190694006L, + 8225681262889934868L, + 670972606916628978L, + -7016577201793262587L, + 9186141629236930525L, + -7494961908382494386L, + 6018069173542321620L, + 3178094810629815034L, + 4206446522733994268L, + -6087839594407260931L, + 3028792124204271051L, + -5992000926787926144L, + -6045285586180402268L, + -2566939030601076745L, + -6419778085488192839L, + -5937870815253811034L, + 3037623662402648617L, + 8475134681257527331L, + 7525467631675910914L, + -2155136652979576665L, + -8863297785379055796L, + -3708604617726301534L, + -1690991326769386459L, + -4914650490954752560L, + -3651000998051367684L, + 2310224359054007710L, + 6467643434506892008L, + -4675387411483580919L, + 1539479589290018260L, + -1317482399971130537L, + 4787089544028336616L, + -817342235353043974L, + 9005897661744065787L, + 1698757063019545437L, + -7450744880655832349L, + 941242980692041666L, + 3855717121175377711L, + 1838418961320954867L, + 7906600640157184104L, + 143774240320811355L, + -5033235558726049955L, + -3733441418159723230L, + 6322249537999722411L, + -3599749198660319070L, + 7881889296519703891L, + 8772851375938262713L, + -3694154014800677764L, + 5483806649985491869L, + 7467568598910778939L, + -839413141520398979L, + 1922118942992405635L, + 5178389178007203495L, + -2131625735310863702L, + -5210713408719608360L, + 969214743442701574L, + -6694519095627761288L, + -3987528749564960054L, + 6145126602437587352L, + -3312790047326848561L, + -5928158217897491190L, + -163692375920080658L, + -4638104573766795427L, + -8806888994476878747L, + -5569512305780637370L, + 1905174746960402451L, + -8994865683955938409L, + 6363190415094303315L, + -819892343899481166L, + 4997088889036354237L, + 7165251770996374856L, + 2252387190424353838L, + 3749847241214246299L, + 7255309255472237037L, + 4672295531818402039L, + -2560356144353793581L, + -2883403067265782436L, + 1079945501265719009L, + -4510676817588967577L, + 373333767776611969L, + -5012601232582215618L, + 2359976143593903713L, + -219011861965226894L, + 76910311444724969L, + 2854997659137560722L, + -6663673552428958663L, + 1647372533507817437L, + -3677652995772257250L, + 1062322309494793766L, + 3997004911860361768L, + -6239801180306730115L, + 7679085503289673770L, + 1937634364969511157L, + 5848969401602626006L, + 6881011614306732306L, + -1181711090074996330L, + 9115958678061403357L, + -4697019334186712846L, + -7555505080733309776L, + 833987302221784302L, + 5435944218394230630L, + 6255423471362246568L, + -4754437678222079801L, + 4816793278931948413L, + 1100877215282697461L, + -8016274804264066913L, + -7426166309912307238L, + 4954658046266531508L, + -4883068330523614006L, + 7317707222197692142L, + -132182832923876333L, + -8068825386408665062L, + 4223343479296349312L, + -8975167582022794209L, + 121044807630038334L, + -6383751162555570203L, + -8622829604115563764L, + -5344448720560932522L, + -5623514837754212750L, + 5730174855784677314L, + 3652462989937797830L, + 4478407032758117542L, + 2265833848570320784L, + 6271663588896592981L, + -8981268861954876981L, + 2199940822940402275L, + -3590335709696386659L, + -6646866007057749522L, + 933450190390074330L, + -1705940515687714841L, + 884927789464592510L, + 7732852775367821028L, + -1725008633709952850L, + 3394484383328726796L, + 6799292447107791901L, + 4773322126911057201L, + -8847524026119006559L, + 1601292087637309633L, + 9085231169106063244L, + -1810226490203477297L, + 3740885817651637744L, + -7385020022373289763L, + 2121348550441645292L, + -8934827205753906340L, + 2329866036041432354L, + -227251566650479794L, + 778635064663790602L, + -5472060023053535116L, + -321365152251518886L, + 3413015614360083800L, + 6854233750120825103L, + -8179957420127792439L, + 7639860843374003692L, + -3294365432579777001L, + 7552965644538813699L, + -6829073195148823177L, + -6544243814787582018L, + 3276872521860349837L, + 1262482336572979429L, + -6035485817914735217L, + 7123327863090630643L, + -1419575113783159041L, + 4628009131887144546L, + 2592000227149193793L, + -5446709712701171970L, + -4786623131259234045L, + -2209160773748122650L, + 8047313604406463713L, + 2928998992221512765L, + 8881744382098607154L, + 5910178969134356556L, + 2892684451843776864L, + -7070070413419488908L, + 1140959062136881244L, + -8078877408786009860L, + 5222805670098495052L, + 1324778166912833091L, + 7845644310752162054L, + 6958124637538105999L, + -1400888392648874523L, + 2109573135688128455L, + -7865948962736451119L, + 4676890351917403373L, + 3174741654796657218L, + 514620636603694596L, + -5843197233618027131L, + -8822533246164651619L, + 7073040785885419375L, + -2228372994944279357L, + -979163503523055821L, + -6159677857222198592L, + 8520855780725828084L, + 4467908031177966524L, + 4623181254618087867L, + -7383960780180519764L, + 239794897939583881L, + -2449501378631335133L, + -9114494545950113117L, + -8576114508943907464L, + 7504752277411331892L, + -7009950139050754470L, + -7202878339609803777L, + 3502505583014180224L, + 3951294951154157069L, + 7576089410756827288L, + -4992190452267503827L, + 3759298924972701902L, + 5361054523231489156L, + 211310386754363706L, + -6228856565314106146L, + 680474239388747542L, + 2183261167073018417L, + 3717345151222475163L, + 8772076500587548312L, + 4345221692547451466L, + 1138257226251182865L, + -2662436603566678639L, + -4926523876409822165L, + -3678204040905789269L, + 8860732609728455709L, + 6897346961138467370L, + -1338981596745710341L, + -8468953950219880235L, + 486233297899205409L, + 6673618507643695244L, + 1938737376496949348L, + 2507410887406001878L, + -3144439725476898055L, + -636790656650957308L, + 4344459600416585073L, + 8802289277757075229L, + -1379964110832028405L, + 3060435899170352150L, + -2801307070927302409L, + -7124182447926601667L, + -7426433529387563337L, + 7001977894058124773L, + 3831629918356470166L, + -7304530994934688959L, + 7754766126986449104L, + -46130394912060400L, + -8185025239564030663L, + -6956120752394147061L, + 4788947004304391335L, + -1735188894957188142L, + 9113463202794835297L, + 9061503384633795978L, + 3807163083218760203L, + -2329524236876369592L, + 8363142198304187431L, + 4935678682189220391L, + -6502593394044097632L, + 9064904356860480362L, + -2044134484905048187L, + 8567519794665060422L, + 3904525302336061297L, + -1494404137865570930L, + -5818134796948330499L, + 8916224465542753907L, + -6810040832909920013L, + 7300268571307893571L, + 8665822462022449768L, + -130646649469545334L, + 8931475468018250160L, + -2817889287241953373L, + -2752837956949520680L, + -1276654552752920573L, + -2251442540884890384L, + -839799567481138562L, + 2986595498063065529L, + 7592128662766254437L, + 5065431482109049471L, + 3052000465060381141L, + 8064475279897785235L, + 7316665605154791806L, + -7296124855087242119L, + -1068075826697136964L, + 1770213836059184427L, + 6802179540194069850L, + 5235498833141060330L, + -8408647861923123811L, + -8554824869230440474L, + 7743295190330547469L, + 6188344344114106969L, + 8228222936284833122L, + 3344247964190287149L, + 414458000971249569L, + -2223421794494123215L, + 119196072452533464L, + 1767473452281958193L, + 5414804141160961127L, + -6164986093592204309L, + -6945097172273522587L, + 7543678863267970809L, + 5972029304048115321L, + 7964352772558153769L, + -8031602489285468891L, + 4513387372558218399L, + -4317501704056493461L, + -274621052405989180L, + 7357459993975469423L, + -1045104405025437444L, + 8789089337669501295L, + -1542665393152510095L, + -5503352729676411061L, + 454066729485099003L, + -4605997634839849907L, + 7986133233466526795L, + 7797356799500954521L, + -9136756413477760050L, + -3352377497517747454L, + -7663557526205276831L, + -1525996382926367358L, + 6802076880476427490L, + -6954802694827637538L, + -8255048613760674037L, + -5526865146075990207L, + -8041208983843583602L, + -2876214926964143851L, + -4567575438614223896L, + 8420564950974772325L, + -4468508733028315993L, + 2158430745359670554L, + -5782727846185414792L, + -3874464451992878487L, + -8557153996715396413L, + -8661029592684774411L, + -4150741558733167704L, + 4770959381850533581L, + -1372013076694700751L, + 7324757985668456281L, + 5602798167879679886L, + 7096916745991890202L, + 3359546006805092444L, + -5934158002733550535L, + 3518079055124118324L, + 3891916644964858524L, + -784545090218957019L, + 8609087702173814141L, + -4214391733469045745L, + -2044858518039349251L, + -3293020846953619138L, + -7669901992597447071L, + -5672416569520217737L, + -3662648759277482540L, + 7169982674540677627L, + -5034338530874716914L, + -4364910862609957183L, + 7039463956727691070L, + 4376009824957522714L, + 313781735218274235L, + -8374050652661964404L, + 245866763156781213L, + 7728750319168662084L, + 594262726005822013L, + 7249071001552727284L, + 6347219246484821270L, + 6926202384981930971L, + 412730668885611257L, + 462335472710927109L, + -348263357460866746L, + 2609062719003263340L, + 1486600821422386160L, + 4132108509971674644L, + 8030540528138614735L, + 4390114767626197726L, + 910347911083267698L, + 4296150444361133712L, + 5908327276875316267L, + 6462269834278773298L, + 1022138366617103631L, + 5383154957747795010L, + 5699575167827705734L, + -2652265514146457472L, + 2238012648012330901L, + -5288285844452580653L, + -2216751023690323971L, + -1798254526639229052L, + 8315911965214904362L, + -563311534821832764L, + -1984298076611665046L, + 7341064198541676544L, + 3795556264919263871L, + -881121796727972887L, + -2490810657935140123L, + 6330994053097077495L, + 1735731862607083753L, + 1821412119760767989L, + -4980141494405310L, + -5081188792462627828L, + -968905527778495175L, + 8787413501897229149L, + 6443042663738607800L, + 3692053332344295218L, + -2382648731027216801L, + 5921028055250520509L, + -4441446372395233901L, + 8057250897470973794L, + -2179625882359143302L, + -4585983332243873847L, + 2947899043243289973L, + -3598625264816669494L, + 7399975594911733454L, + 8846907058100841405L, + 8603925306148488337L, + 8723738803991223798L, + 5322899334586289468L, + 980873212211856324L, + 1004635762793822977L, + -2140100049088182929L, + -3651897446664191337L, + -1874000194611339405L, + 583292569907066994L, + 1976990985958368945L, + -9218950396095831894L, + -3373076707808283751L, + -5833521315607870794L, + 3429301542190478141L, + -5779101479993755753L, + -3292515863222404618L, + -734356228269251634L, + -1419711834445978806L, + 4791895985462274442L, + 558659404424630665L, + 4275995064472140735L, + 7226750437651616111L, + 5615235292948993742L, + 4861367471360311948L, + 4049264481777356211L, + -1835014487079257912L, + 4979204155403334102L, + 1560749888033433035L, + 905000432154591788L, + 2652083709010751184L, + -434390227817650528L, + -3344931822017511339L, + -4822779910956367280L, + 5882026350853463756L, + 5891977867625769091L, + 2576050208155010377L, + -6619518348855378096L, + -5742844076219814181L, + -1914025252482891199L, + 5421866639996215069L, + 7835065614735292470L, + 6475952342457673167L, + 4955638233787312652L, + 1871081664582907788L, + -7245345286793459755L, + -3526808804006913310L, + 8344018619352798022L, + 5358291849312032011L, + -6703839318935180537L, + -6055000653146022613L, + -4547726197375295714L, + -2022691831043772930L, + 6905477133149069142L, + 5578750882894839351L, + -2144291497652708501L, + 4762703426605093736L, + -5891027977685165043L, + -4718456023150759710L, + 2043414443352475790L, + -4859905028662199142L, + -5557172942093408989L, + 4188007248401731314L, + -2942301800843817532L, + -7954850101179530301L, + 4495970396795510187L, + 6186348734301669790L, + -3001408455591637606L, + -8982053599214642216L, + 3206742202353249401L, + -313214205344900099L, + 4889646506758624956L, + -8388345116324930401L, + -7881544699619548038L, + 1635696647773999186L, + 7402207885754426706L, + 4891433307203901702L, + -4902077413549687845L, + -5143362415788346631L, + -4439682815321989946L, + -9042829490377265502L, + -4792104448908161508L, + -6627704780170319053L, + -5929099532414229375L, + -2106815749065875905L, + 7153802770224100626L, + 6823686413158082729L, + 1694613412884784670L, + -4006378366105720051L, + 3578159103226821407L, + -1734412197339646213L, + -7830870208911511566L, + -5772771500325183897L, + -6370961521433155442L, + -441749519334552646L, + 1412754462081697221L, + 8641432394145297452L, + -4975119815461720445L, + 3065463668829511567L, + -1417732062874945313L, + -8665490603267793267L, + 7087497419346604712L, + -1054219113545905941L, + -1315389530554573357L, + 7307121779722859187L, + 2145881449095507057L, + -1356311243412327435L, + -1586722954636622149L, + -2596336211110400075L, + -3215891778864924520L, + 2985606461750734808L, + 4692985241349436947L, + -7071521356811106236L, + 987506433534876222L, + 742743288878802279L, + -7582066902960079495L, + -2199576919602302097L, + -4292471260346290085L, + 7557016375506342717L, + -174092040409188492L, + 6491426317028063034L, + 8822682594036660801L, + 7173417784955207190L, + 8551647075273107302L, + -7644205156880731114L, + 2369403682692200990L, + -6106179001069207874L, + 4406129042862978293L, + -5294299708922784965L, + 4517194244669198236L, + 5935865739771554409L, + -148579357454083417L, + -5274315200034319889L, + -5097950017153595353L, + -3022334830850024229L, + -6777482830421353059L, + -2313967150562967720L, + -1391991890442893937L, + -868882361960329098L, + -4058598280032086693L, + -2072498290023372165L, + -2078524543685149712L, + -8995602191301155697L, + -9177698560918006329L, + -3896826154277082645L, + -4805811619774811701L, + 4704091919527581969L, + -8267745047895479775L, + 8851711941947232288L, + -7190173558292582252L, + 2840928875881838186L, + -4726327121612974966L, + 4739308903198773507L, + 3567219622550820947L, + 7071819841015279071L, + 1838081917409050236L, + 5764863108848455953L, + -4900908742261783725L, + -9214052328693993926L, + -3738104023508183695L, + 9075020475259263468L, + 2384031765345940148L, + -5444918603598131168L, + -2882755332293334170L, + -5876017912667903002L, + 1468518394398751688L, + -94624357829376694L, + 1502968325367457055L, + 3212228973304759982L, + -6076409951803744617L, + -689621575143754807L, + -7544663587107097008L, + -8464517018621156157L, + -9197647440671761342L, + -1138277308728785000L, + 7911450175654362014L, + -2846463762797468283L, + -5779655457569633261L, + 1229156604453014638L, + -5248062133487718488L, + 1945087454960389231L, + 2291489842271385397L, + 4548491699913654765L, + 4776530359090895890L, + -2392184633655107718L, + -1866462256049641298L, + 3379059210862389839L, + 1324602936428062030L, + 4537114827125131113L, + 952752288945823129L, + 3565038799689635380L, + -4943156879148090116L, + -620677278985252287L, + -5343479831206832325L, + -5942934304939405391L, + -7430408163129035969L, + -8536378671288512743L, + -630422435482211312L, + -4059263730309361295L, + 8362955714824710045L, + 6715535958794722463L, + -4944093219667507205L, + 4750238213300021794L, + -8834529272883383766L, + 928202066153864099L, + 4277678786869773289L, + 5803777088958198033L, + 2532770551571706676L, + 8937228681131524098L, + -4349917458712392154L, + 3600518091981945868L, + 3641253327732529861L, + 2269352593538301269L, + 269968982007354668L, + -9126734426165655944L, + 299251652927012593L, + -2622198051228209602L, + -8324653355422469245L, + -390691951434421313L, + -2377466392094607664L, + -7705538047856565009L, + 4335372426529707859L, + -2498731359403232390L, + 2813626900624072081L, + -4153400007749091122L, + 7328219555534666722L, + -7039010207561583485L, + -7451340093255351815L, + 8300978712927459521L, + 7991017147293573613L, + 7339614609177704490L, + -5125145048677445929L, + -1538654431949953813L, + -3305023236591253586L, + -6649451688833693508L, + -5820953574235680980L, + -912420997561859658L, + -3902860965130038472L, + -4703516784403936152L, + 3949690979346927322L, + -5528618711335454103L, + -2895138419635669572L, + 6284706264052186570L, + 3181053554338548547L, + 8917972201915064935L, + 75545390955492453L, + 6617851455758380376L, + -8707286283526343202L, + 6458946651764889185L, + 2987210920096501853L, + -3929693201880566946L, + -7311177148068531782L, + 4694554226910788398L, + -328680149836377578L, + -6188879516160944336L, + -1439844932334130992L, + 7708794174024674351L, + -4972006945073432467L, + -3162414061439364796L, + 7611809776816354031L, + 7254917564661254243L, + 3667622699015156399L, + -4913423608887015660L, + -6406987107635608389L, + 7035993050305636880L, + 1916243288799539554L, + -6879510021825536938L, + -2337637717379887008L, + 2467748304124499564L, + -3927108882927586500L, + -2369728608878680941L, + 342563431112818562L, + -5912585188049034482L, + -407795551560657970L, + -903691070858875362L, + -2971339966384799256L, + -650451997911266170L, + 5242710773034780732L, + -1758576207105628707L, + -1470978453124678938L, + 2028635970527834903L, + 6815510071666420375L, + -7234436760336244906L, + 6292192056464010286L, + 1442992781227112073L, + 741439802185251252L, + 8259834200418148233L, + -8169078357231916499L, + -1797363372045868164L, + -3466386712830748319L, + 553979734832180798L, + 2513380028887544649L, + 2661079907020837034L, + -5749043704832338332L, + -4746726654147920522L, + 4037149160512845688L, + 8783332493545543365L, + 6975966824887269880L, + 2414109369471474312L, + 5221641322938052740L, + 1045377610832006372L, + 8220190173269826766L, + -4267642609168870565L, + -6726832047984956997L, + 4915477332941388735L, + 6608423042031786987L, + 6581279335256275269L, + -1248042010437529483L, + 2938297630330955554L, + 4806385874000231762L, + -2426409043681964977L, + -3104809890914424604L, + 3239277469128944935L, + -3228874498793910978L, + -5342097497391211924L, + -5044251361276447963L, + 6207287572362362872L, + 6453529115456288086L, + -7761442273817439921L, + -1313531713770046715L, + 8881673399342129140L, + 4733296612672962576L, + -3473666608340546150L, + 8218487469845557336L, + 4700027778130567975L, + -5543249054637254074L, + -1139018312153423389L, + -2628885986060279174L, + -962753284069616419L, + -1977142032804526516L, + 6646177420565083192L, + 8016625832549598730L, + -1342495141337498297L, + 3211076661681150725L, + 7846691090184096603L, + -5609697763635391879L, + 2769843206190578001L, + -5672542928916786367L, + 4598226438051963770L, + -3227148609660772768L, + -3607859173825103520L, + 5670249508182208346L, + -6032039770208777467L, + 2614105956519160427L, + 5083815977140776067L, + -3296597605117180179L, + -7021640596217776934L, + 4650797426085619966L, + 6823311525616632062L, + 7318563146604289182L, + -3249092227795437062L, + -151150995477552393L, + 153136448819291758L, + 443418003145395916L, + 330893611106491728L, + -8176197849722920156L, + -5799839357743111551L, + 2867443686326337937L, + 5834608113617061904L, + -5527344088399014587L, + 1370666271993552626L, + -9013120144216259368L, + 1830815874448486738L, + -3091499273874627758L, + 2439461791078633880L, + -1604733478398884862L, + -2833138167354744622L, + -8845858068800398866L, + 3394332891858442031L, + 3777164890336719073L, + -2607231551899902562L, + 2739493825272673913L, + 6829159159418711593L, + -2509633811118610608L, + 4359413808008559480L, + 8154016792499406661L, + 1004971369233421951L, + -3608591463620078287L, + 4138095872882887017L, + -2603875175400857352L, + -8405872505069427520L, + 1602648447388078826L, + -8268213664821963029L, + -7851183899871800583L, + 7988099858367774014L, + 5236015171155823561L, + -7662486771050598416L, + -892959823376427763L, + -9172278347517696397L, + -3334552067210399222L, + 1963387851673972629L, + 366925093822958196L, + -8737871286507690286L, + -4059561536773198338L, + 5578357435587801257L, + -4737036380408504897L, + -2389650777043999775L, + 4340566577553274925L, + 87873442854751345L, + 4155340801507615439L, + -2055658632596291829L, + 6753511476349576327L, + 6452063849292950509L, + -1603688271352032940L, + 1697703077026901826L, + 5824711473055577279L, + 1379237507098137739L, + -1685127774222319703L, + -3439406616052314190L, + -1744663886940391594L, + -7216395177905133758L, + 8010452920400446284L, + 4766353280757415234L, + 5289169306825991429L, + 8447139631505072923L, + 321854408757186899L, + 3617266287300740708L, + -4787302239589324619L, + -4363130050517248733L, + 7132767988848188413L, + -5874421566019315237L, + -1493418467779572102L, + -1040767190340986459L, + -5719181448516381271L, + 945641378172265342L, + 4317786055883622899L, + -3043053328324478777L, + 7736235059159196619L, + 100300833538974478L, + -3101949869641724204L, + -5639485198324936982L, + -8593145909773483082L, + -7461619124932989195L, + 7184437998425110153L, + 2326528031076754258L, + 6398542587063881263L, + 5121771660090392362L, + 2305396835393933680L, + -1749007542647542275L, + -8460868976489643710L, + 2812416063972701080L, + 7906577727755007976L, + 6878465050504315500L, + -3674658411106758781L, + -1455749094773635190L }; public static final long[] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = { - 0L, - -5489459004343878315L, - 7503380622199085724L, - 2441079805732305625L, - 8819902077857493254L, - -7239504485102480291L, - -9103724217032567499L, - 7826741851900927935L, - 7861549010645900695L, - -4129502239425616770L, - 4078461785955388090L, - 1489179179228483555L, - -6880302114450925784L, - -1359221788845957867L, - 3262871501411962535L, - 33112984866957419L, - 100800524801407501L, - -3943434617574838336L, - -5567763290832289441L, - -6049917652519314692L, - 3409418409813158633L, - -2513363768495658276L, - 4729321061686624929L, - 5115271314646777786L, - -1775717939635903349L, - -8985310044214288169L, - -5289981668663347291L, - 2657445282762234064L, - 1658189325818139403L, - 7040959815147060996L, - -8236343544564189629L, - -6468423844022575750L, - -1734633079588783454L, - -8679472524235675133L, - 8623155328902958458L, - 8266452376374499416L, - -7986536660276263608L, - -38125844968838697L, - 3921548615006566009L, - 4167944986113577315L, - 7096373300544578406L, - -560467948694959375L, - -850973896622675114L, - 6041177228348470283L, - -7420438933559505984L, - -7157017808797228913L, - 9217073653386571039L, - -7925541759804601833L, - -4487790335997352328L, - 2187762356575143872L, - -5206697366103859618L, - 8288284347584621435L, - 6423483699864562311L, - -1301663738927719460L, - 5991822234757129975L, - 8484285492972108171L, - 311551427639324312L, - 8099673191736882495L, - 4653698799511358644L, - 4648482686787053407L, - -4597597110260670199L, - 1984036580098860995L, - 3448207916911718973L, - -2419012589431525517L, - 8388910627173913596L, - 189931510972302233L, - 3424055321741735739L, - -945841679237989100L, - 2168309080935198613L, - 3930831257313125476L, - 5077730010723338083L, - 5376103945202976111L, - 7108178613986510272L, - -9053383358889392039L, - -2078618651987341503L, - 8653340598805107048L, - 8828877028299898393L, - -8807324610935730640L, - -5999341882281512306L, - -4455338180650516077L, - -2009585294493958968L, - 7588673118342431490L, - -6389009730910810602L, - -8947948912760624317L, - -202446748676143218L, - -6162519566164064386L, - -4803722494667158367L, - -8605895565747471606L, - 5066687539085198609L, - 4310933084750715996L, - -4304304530429964114L, - 7737891570612803812L, - -3921768646472251957L, - -773766867734108857L, - 1818530881116628286L, - -9067673379583734262L, - -6823589291299652903L, - 776981371466262375L, - -4725670966108995L, - -8569242227636325585L, - 7909516787010450443L, - -5409862721314071515L, - 1913390982618688260L, - 6633081673493660503L, - -3605710376875214656L, - -8651943069220377447L, - -3425208691350179262L, - 2023446091470969965L, - -2468046963501962333L, - -8040451662076760690L, - 6158975019111504792L, - 6451542295099535005L, - 1802801579248303870L, - 2903003428319375652L, - 2834890810006302360L, - -6999968617065854757L, - -5369183269958550280L, - -6215225450449404642L, - -4073062335503587325L, - 456244319192879701L, - -24866508719391059L, - 743755516945687656L, - 7224143490658054462L, - -3977052728265338488L, - 6697206251899645381L, - -1994430781487194731L, - -212878833179631937L, - -3790446480600918357L, - -8511592301089770863L, - 1219524981576986810L, - 4205669984974194347L, - -9209991568622991160L, - -8128478767060283641L, - -2076540995963994161L, - -2831442865177886383L, - -1554323285239301165L, - 1155483303982507802L, - 5625007334328700567L, - 7506810827241318270L, - 4850815999417875788L, - -8326271238555403498L, - -3594934673556658753L, - 9130555384341207831L, - -1636079010828843126L, - -5064854279878768025L, - 6320681008229340321L, - -7870114218944117341L, - 459008888574399930L, - -9220264964593181895L, - 6941777480363861135L, - 1923797770202213346L, - -7993097353081304854L, - -7062721428278188440L, - 4641857350677613467L, - -1122321128205157978L, - -3526624090474535074L, - 4944983273040270843L, - 2063583183742948633L, - 3655700015999632472L, - -5913958156741267094L, - 8613461621342346429L, - 3728928562759850702L, - 6241947623237199216L, - 3774760249391115825L, - 6588067708543859113L, - -315068792768811173L, - -5773745174066109816L, - -3452596043397112080L, - 7177068584300707868L, - 4097817609960514365L, - -5523936337054287311L, - 5444453562100935555L, - 3539268898986090748L, - 7209639972437712982L, - 8208887215850721310L, - -7584003436803008027L, - -586284534101862111L, - -6581923378985929195L, - -1292149830675494156L, - 8697160487577903529L, - 5250575745761625176L, - 8289951302281058324L, - 9086201969492098206L, - -9184690972075930116L, - -2558748134131757348L, - -9201085943428059583L, - -1203051916666479257L, - 1834444962634487203L, - 3751251954263485890L, - -9131637525800107438L, - -8564897964388077031L, - -4014235661520374127L, - 7772145975456897696L, - 7355322558781294763L, - 1785796348137315143L, - -1810503426695106112L, - -7963306922570812555L, - 8368320991787406185L, - 7378068988124953771L, - 3490895360405304927L, - -2006181578179635491L, - -5275131505037815605L, - 6086715123177826637L, - 1009907222295997078L, - -189851063854443982L, - -7046763987694627132L, - 4056906261431690499L, - 4216346710909753402L, - 8183939407068939669L, - 2208727954886688050L, - -1634098797909572318L, - 540308152596731090L, - -1727304011169135128L, - -6242236677749002446L, - 6755106734652766002L, - 9202496665027870588L, - 3145991544544797692L, - -6269373509996933125L, - 4266947436916246907L, - -3398567844975915797L, - 8384588213561617608L, - 5989354874425809092L, - -153343096544690395L, - 9134497380995453092L, - -6788300148488988381L, - -1072244206525774929L, - 2731859015443790841L, - -3870727816981171328L, - 3166678867327320482L, - 1782381207784406192L, - 582296485367088592L, - 1924609876720457074L, - 2020031065269578886L, - 8699089776427025205L, - -8250138664796740621L, - -8999944208955163022L, - -7762984786287364139L, - -7261637070280909069L, - 8156604099628561139L, - 1927922010019336920L, - -1965484533023120730L, - -7378358867965860473L, - 6664442544791033212L, - 8081003240836167908L, - -4972927228442651371L, - 7037220157993345548L, - -4215239911770630248L, - -5424767419067785938L, - -5015387983382506291L, - 3753298110869126767L, - 8912454012440748855L, - 6246157925622615315L, - -4131608429474620379L, - -8866364110645726391L, - -4098704456672758799L, - 6667152953392950525L, - -2762608273732169437L, - 3667940640226771520L, - 5470356938562609842L, - 244296890800468507L, - 7856373341189773146L, - 3177289659856312500L, - 4580751320975678335L, - 5452034875875902693L, - -6459973872666569214L, - 8625227864473625727L, - -9052197575017583830L, - -7608813006404804371L, - 9124264055991041910L, - -4100497818513510737L, - 2980793238691227316L, - 6575852184122601786L, - 2996374119615737222L, - -5870513842846624786L, - -8762559588158401352L, - -6912312183162430280L, - -8032694211707482067L, - -4215194693068873060L, - -8105263246073793266L, - -8307710354093860627L, - -2478197063796008569L, - 6680336333415266706L, - -3911773407997852436L, - -7238133989410260247L, - 8137218262646498370L, - 7578266702219259398L, - 4984246736570911861L, - 5740916903194578939L, - 4650616964627618168L, - 930361122203084377L, - -6713840012306591264L, - -6351841364919936067L, - -2925823570763349733L, - 2325060427136132089L, - 5274176558463348026L, - -1818816163370336308L, - 4226120637281533162L, - -8207986865454475590L, - -6725133576876609787L, - -1600898310239203030L, - 1696982907642760280L, - 3217068829621413413L, - 5726899844622119885L, - -5334923571927126756L, - 2497036294033639132L, - 735344340727198341L, - -8578481740421909478L, - 5911424493524947756L, - -2237081032372483426L, - -1561034557541861451L, - -7693466035562951498L, - -8752739978025721151L, - -3280877235853016561L, - -335598525248223652L, - -8083858348383020986L, - 6627393503177414372L, - -3295140360722222876L, - 4582776009525319397L, - -5331509940479931877L, - 7726342923596696881L, - 5192783923588484563L, - 5568191868601892365L, - -4393837608149654125L, - 1618228693783883350L, - 1865907879575939327L, - -6187340976863502879L, - -7405067505368332090L, - 8443777486378865412L, - 310723497241167764L, - -5731861018710458545L, - -5188200524108388224L, - -5634297329175284953L, - -7899478064688965957L, - 7020598068122504891L, - -4174871225816409135L, - 7104858324370686207L, - 1001810694886929241L, - 4733684478957873906L, - 1798707327797267468L, - 752841691753555520L, - -3603149832862524798L, - 1130977238495142718L, - 6955284253225269412L, - 2247585991738722824L, - 5340594336749478221L, - 3633355463323711913L, - 8199061420280246379L, - -9034722840567119949L, - -490757115109600212L, - 7729314659586557941L, - -7671659041667731989L, - 8094072612753317160L, - -1759769045835117937L, - -6152365461952206160L, - 3606911680259234419L, - 6955318748746854408L, - -1011200841397882883L, - 5519324885444860877L, - 639515187583097557L, - -8137297682181162942L, - 2539677958872014602L, - 8313575916214347743L, - -7407936988953985656L, - 2917949547560244958L, - -4496138768486595800L, - -333949342684348960L, - -4317613540520387633L, - 3175626083058125320L, - 3148487542664978970L, - 739198439328606230L, - -198883737414807980L, - 8353961470331151973L, - 311945919273194245L, - -7052740176726980689L, - 5254438376261024030L, - -7550828065282849515L, - -34611043042402666L, - -9223367429051483136L, - -3370299527924413091L, - -3126722705768731979L, - -7163303945559650746L, - 6785247517465168600L, - -7406637645862089930L, - 3385765690609235233L, - -2811478167849833354L, - 867164096842195609L, - -4105629147992376513L, - 3062984161819352214L, - -9109105071124058400L, - 6860897610277413293L, - -188188174565377756L, - 7884790815752132293L, - 6738195176410269361L, - 4393541369181811113L, - -4968060783295630360L, - 1281959927064810831L, - 7544219152372891202L, - -3139356250465507412L, - -4662764301598305279L, - -5309739957670290877L, - -2335698040008447736L, - -5063258188578883170L, - -6060472572881319296L, - 8510043957998376964L, - 8054425688228121580L, - 467181640856973250L, - -8554733707863771098L, - 3945436629188897073L, - -4648027966578763700L, - 1436821870625146671L, - -6039021841572044396L, - -162916729795043698L, - 1387478937752001176L, - -5009376788980435331L, - -427324746652961365L, - 9045326031349144872L, - -6571167574055307665L, - -7420045062343802233L, - -8281911816922916681L, - 4447883374750578122L, - 8857646523249955246L, - -5267905974004184533L, - -6586019939801565413L, - 7267509981674277869L, - -1730011012540783294L, - -3361327884510257968L, - 3153991252302571831L, - -8310723694192823368L, - 7365064041171947240L, - -7013288395764077337L, - 4424660961017823126L, - 7969284775663103753L, - -4673682312621214884L, - 2388177300282901685L, - 6610519624906161503L, - 8382367186870347676L, - 8011820517530369081L, - -3416914590527734423L, - -4432873885847563136L, - -1241220595388288096L, - 3560316095147026509L, - -1797075113553514394L, - 6552677553429396356L, - 6246332708352927155L, - 3861438072358225949L, - -8565290136579594910L, - -8002406576632498243L, - -6412781196438208222L, - -9047876088717010136L, - -8568000574169975921L, - 5244941923904200088L, - 1628817165486138289L, - 5749777718311982230L, - -8611048104500552826L, - -6407884750949781504L, - -8282995989967171744L, - -6031458083272026720L, - -1472077105364514517L, - 4504451286765383015L, - -418652306528352371L, - -4257356316730897484L, - -2957389181041677312L, - -1145720335115263201L, - -3091972849220173524L, - 8005939599601764433L, - -3417016708987198366L, - -6247258224636787950L, - -472464393458793289L, - 1487875631970459019L, - 4893795040625314681L, - 2729581410182440515L, - -5405273280140448608L, - 1452154199208270257L, - 4883843472429258182L, - -8796762596319773668L, - -5429154805367510111L, - 4426909737432342245L, - 7056415113393668414L, - 8774883135212925637L, - 8450999418184998816L, - 3820763711897833468L, - 3300743371144621367L, - -1630173808856631543L, - -8553736113528269822L, - -1370002862968307889L, - 9214585244396484676L, - 1427686269336175185L, - -3598631782642855473L, - -5269185928615394541L, - 216499523242669211L, - 7102788753870316442L, - 5649046266779873829L, - -4035565318503894376L, - -1855507138875094206L, - -5459594227201815570L, - -7410474841354966828L, - 6975082282771211247L, - -6353323886182944803L, - 646100630104660099L, - 7745081824763595518L, - 1579836547749948481L, - 7479608073819635972L, - -988819659251472110L, - 3121457552118354542L, - 1867337923564303955L, - 9039210151448164075L, - -6005672592365502974L, - 6809724817190798332L, - -8247807826434556808L, - 8599378181039531724L, - -8714366537708795385L, - 6194756214969034120L, - 1931855937995972224L, - 7780282029507594520L, - 3768324591352426949L, - 4770908273445282121L, - -5412117564459724461L, - -6910299206138527089L, - -750571165687777551L, - -3467143436546008630L, - -8778968277750614352L, - 4618269006460421671L, - 3784770542544192149L, - -6555035917940220116L, - 8763137794052904168L, - 2160001599658800708L, - 6579628917216038693L, - 7486800118422365343L, - -4727709771709935935L, - 9187028796349560592L, - -7646323237657128497L, - -7748151792724558120L, - -6629529116619603711L, - -3614919661598905131L, - -8926765781889646711L, - 4895079662109541742L, - 2313039280851327331L, - 8353059951121245572L, - -4361790301612843227L, - 878233584623997873L, - -5808341064891365335L, - 4957901996955185469L, - 722227598467337170L, - -8083855043640093449L, - 6296815072878721220L, - 3074098970376702630L, - 6487949451261677276L, - -8230337956949714079L, - 1227684096490474594L, - 3317131110226161460L, - 2781726232095396341L, - -9035241125603661424L, - 1004655391950987227L, - 757196511985132878L, - -4972385379979135932L, - 377837633918307403L, - -1837164923183207790L, - -5200366587699061855L, - 5619426661630165722L, - 9149546739708634949L, - -2161224822270988047L, - -8498758122904002877L, - -1903606037752461125L, - 4004956335353186480L, - 5899754692366277712L, - -8569895455403315824L, - 951203285725380985L, - -724485898478246754L, - -2310191424936462146L, - -1054133327199042402L, - -4761860002343924045L, - 2144188224512375766L, - -8618252392915479178L, - 562427488463506661L, - 4069612511580576356L, - 2846217274335476972L, - -5321770005300190195L, - -2665939903796278305L, - -225615242036287371L, - 8340124049763317532L, - -39328151188901959L, - -7704128105896373508L, - -6608889722744029365L, - 6847177601802070732L, - 5406538445625075780L, - 6056004216550410553L, - -6388427415087871994L, - -8510724109624398612L, - 1448506476683617231L, - 7013188100856212082L, - -6841370342344231710L, - -7996960406936053822L, - 5644557457158245692L, - -3296152646650497129L, - 3536461329613452151L, - -437075207063513146L, - -2301050489557934983L, - 7033064488351122705L, - 3720571868910950941L, - -8581343467023390064L, - -4996282238270355618L, - -4434808715189273218L, - -405745463035508082L, - 277285441155208541L, - 3640603191696429655L, - -6364389291678904211L, - 9077697777962306790L, - -4001601843892243802L, - 4036732856234956705L, - 5248392274720098326L, - 1116847972047877816L, - 4922394575619327211L, - -6285322752897148435L, - 7067487638261530629L, - 3473525332456520606L, - 1575187083569040662L, - -7670017995359806441L, - -6787510510738894320L, - 2880618714956167265L, - -5120445290790388729L, - -1947917760777447734L, - -7623296073694422101L, - 3252361779690367994L, - -8216056055022359562L, - 7525264382031021147L, - 2009893625701158286L, - -3406258625692336241L, - -2113315207827000149L, - -915671322135664152L, - -682373916879109470L, - 1102410309220747041L, - -3371660099417710298L, - 1284384932118496184L, - -7899332066557362531L, - 6082326747969637807L, - 6505116014978799418L, - -6638025017400409848L, - 8709456587813780355L, - 1040637469205493394L, - 7527200228140193048L, - -8009477968838239749L, - -7823164037283850971L, - -219876523001630476L, - -848139362896608550L, - 1659572939496253703L, - 8161950828762262292L, - -5426744617505876369L, - -6207765518458666734L, - 1330209524194208987L, - 312506988145426657L, - -8129873431497496113L, - 2982679062731022510L, - -5042254163968603642L, - 7189511553154561296L, - -7590604770017947250L, - 120767234548166783L, - 3585968789169172934L, - 2487430371362637909L, - -2117477977959815963L, - 6421046597883904862L, - 1915941733899660405L, - 7900047779862894999L, - -7543931826611217049L, - -4916952521775291426L, - -2868801994144941951L, - 6651512411349747168L, - 5311738336671629395L, - 1306146344435585753L, - 2360381402797636290L, - -7691226452323755207L, - -7944284715220814174L, - -278406581618280958L, - 1353480834890980580L, - -649067407317035048L, - -3147933535381057618L, - 8567698068491364114L, - 2639644310821531916L, - -2152161395283566770L, - -4888814748855310545L, - -6303207358154211232L, - -5099131870614196461L, - 1424098929808643092L, - -7162716687949255953L, - 2211086469787899963L, - 2852072241831923863L, - 4450856661460487818L, - 1332130522000219486L, - 4147251563283461874L, - 1207043674339706873L, - 5443671922124706933L, - 1900093839190289799L, - 7347503945522504540L, - 731422176531392690L, - -6899700774889484649L, - 7348057852476419965L, - 4763308267257593468L, - 70257218879991846L, - -739514492116955951L, - 7591767932477900284L, - -7791579872430789094L, - -5400779832289360193L, - -5360582829574801216L, - 6569971639852448678L, - 6160828497878986046L, - -1727168098652705184L, - 2168846004878378381L, - 3297327696375153959L, - 6816148183875835322L, - 6384670180559749639L, - 5098012111875182199L, - -8698209070789796773L, - 7063131632249681588L, - -994727287627957439L, - -8454912490309479278L, - -1616686461984094239L, - 1344308255896663208L, - -8614195194739181643L, - 3663344734731025818L, - 1074555005632296286L, - -891663858889754871L, - 7659504325229552894L, - 7916780674786126372L, - 8131132452406873222L, - -8409366302969284111L, - -7706327771470710338L, - -6629724794338812712L, - 4368055399977230653L, - -7898426087691236094L, - -8547784929920600040L, - -3916622571725474306L, - -4989308590637893844L, - -4255097229406935303L, - -8312609963939033197L, - 6449019140953263140L, - 5157342915532938711L, - 2114971170894382906L, - -3301242078535642691L, - -8424713197061111009L, - -4112134632049136236L, - 6249939489475102785L, - -6545073932128498060L, - -7043982864808573077L, - 6372613537930878573L, - 3190762373477289654L, - -2561239600356400775L, - 5207465341857679769L, - -6030085238141555836L, - 1973763449748050094L, - -2775325371903939992L, - 5477072914568061968L, - -8020494920018725702L, - -6778226228458777374L, - -2143361845827059097L, - -322386110818436422L, - 8486418337526930389L, - 5809129796682159464L, - -229942269923625040L, - -2016398216082799086L, - 4390670686371535226L, - -2276539331110400014L, - 8774439736263797799L, - 2316161663149901044L, - -5179580561974546556L, - -2396133401944865178L, - 3993962098659830835L, - 5629462452797886102L, - -5192061905328685380L, - 5410941996746617173L, - -3413195609621963464L, - -3061527928424392689L, - -3054113352229014259L, - -6424671610054662331L, - 9078610721616192048L, - -8898368096446875621L, - -8847632839009160349L, - -2332831971225170476L, - 3877449624663826166L, - -1998707448586751868L, - 5429087783572068454L, - 7505803154815651797L, - -6830143293644567388L, - 9027942884466367570L, - -5480807710956981276L, - 6168732146645754047L, - 8449301918694745548L, - 8778131551317466896L, - -1532492605199755867L, - -5391910637120789750L, - -5181509335176571510L, - 4222261527096078209L, - -68830318451459248L, - 8424841595605316764L, - -1190497481446057488L, - -5111948271985560837L, - 6030679480752773280L, - 7083507386503347300L, - -7935292289390985767L, - 8633627957234765752L, - 3577142810841159035L, - -250643146821978960L, - -4509721932431137882L, - 1505984612542211946L, - -6225351760438749240L, - 2182044745474903681L, - 7360081805774852071L, - -6980851881719350610L, - 606607963933040411L, - -5770107456508471265L, - 6205171527781848205L, - -3033545694812095937L, - 3583699718972282357L, - -7909170363462215258L, - -7171285223522587462L, - -1732747624639492792L, - 1139035341695075787L, - -293770954049652554L, - 8082120553607704108L, - -1767102175355955963L, - 7028133695751489509L, - 8595468330969519695L, - -4137307279143322835L, - -1088171437960554838L, - -4259340386446889998L, - 21294966289363633L, - -591949962374694703L, - -8837800592081259554L, - 7601644682819323767L, - -982502680195313135L, - 4181853267649918079L, - -5294003730853637099L, - -9158462991451185546L, - 7714670871787985179L, - -2721092666693913595L, - -720896668009511516L, - 4921838985018879422L, - -5038198705157071079L, - 7630728150546004158L, - 161966667436904740L, - -6529489221033141970L, - -483227329696642903L, - 2849537400103054469L, - -5932420765747592953L, - 3979533979134217316L, - -4049239836784843381L, - 5757146880398784254L, - 5806736286865906304L, - -8474302415960396385L, - -7391831815026906062L, - 8483126874968724489L, - 5557012499729359067L, - 4450718684927895135L, - 45335272732612289L, - -3785965163879210184L, - -1898242962714602224L, - -3364618253842484328L, - 7668403852309119835L, - 2092013133434607977L, - -1792300051264582572L, - 4204792673868607151L, - 4506602674596874571L, - -2561418149393223402L, - 7840286404246905129L, - -1035302472383225621L, - 2052650440950159550L, - 3385198385403224840L, - 7801853565618136124L, - 8158750483397835365L, - -7255481277968854565L, - -9050796656268415729L, - 7872874903061363846L, - -6332810502682885990L, - 4195093936537787159L, - 4140384146136775979L, - -3176676578208440523L, - -23527475436056846L, - 4821243657012565340L, - 2886979330017289487L, - 7170512846071359835L, - -6693771254646812923L, - 2266839597848142710L, - 3688056798561584424L, - 7956035795239686169L, - 4088975310233216058L, - -8662929922277559505L, - 4700022330330092123L, - 1044087464966463501L, - -3346284225769510392L, - -1166910579445681945L, - 3872703144237011548L, - 8501175525170010672L, - -6207437985662953078L, - -8733361112153680184L, - -3983180467171621870L, - 2283374194446411819L, - -6768484891471740518L, - 8044328097415285480L, - 1443377185537854020L, - 6803666844639402915L, - 8720154422929864332L, - -2537061102409854144L, - -515858108659325765L, - -1158565680316859334L, - -663545770006278500L, - 5112621109506791791L, - -3092170124310912387L, - 7889395149687448634L, - 3388633789092670761L, - -4176247842082877688L, - 8523663650288415701L, - 8461829646589019728L, - 4476120923918733118L, - 4955138021944824086L, - -8201820083387949902L, - -5150243375844302061L, - -6574687189541337134L, - 1813511165037620728L, - -6609152628982158385L, - 8442952354678524497L, - -7676351795757159272L, - -8444140555968619192L, - -6601786601773499005L, - 2179080756673506193L, - -3666129723434408178L, - -6776769795366302107L, - 4171664079486791081L, - -5452069571377540094L, - 359346427326135662L, - 2943062004262958454L, - -3921968176415799286L, - -134281347921607697L, - -8484249901958594015L, - 2812222074991563409L, - 6633639557063290973L, - -592722373574704367L, - 3584411287925175652L, - 354153167171955028L, - 5447276746665911196L, - -8076348065615557008L, - 7731333241037517938L, - 3253442384900678998L, - -5522359985224379236L, - -6208482024641614158L, - -7364261433707360458L, - -5906718475206754288L, - -2204545928435159171L, - -2795996564005833532L, - 2349222489800990019L, - -2358167389589298636L, - -1617861920532466248L, - -5097493153019151553L, - 898922054995315500L, - 3869670625351897503L, - -6636810950712802069L, - 5490098271052481169L, - -6176774370284978063L, - 6938938509865848385L, - -4161311926638539187L, - 3014272433254839403L, - 9058504699799497601L, - 8524360852674201045L, - -740764664775712722L, - -5679661123465313250L, - -5211931178887212388L, - -7017041889364832492L, - -3265178850476174256L, - -1499900928604101474L, - -4067493147979900667L, - 7299368378152484612L, - -7198659177748600436L, - -2979171190660530337L, - -2762966740484030759L, - -7465049739128224935L, - 3612078396397763590L, - 266194042468197276L, - 5473972901094176230L, - 1189281358884994281L, - -1442205020880436346L, - 2879820564038232304L, - 43850317677405067L, - -4454333694153391476L, - 2645494799086526410L, - 3524717291729262494L, - -1894484565386325644L, - 4470670853232773914L, - 3053558524768124235L, - -6378696765233153672L, - 1358648698333278216L, - 8016007574038246972L, - 1967787619451912192L, - -7471676932864790027L, - 8977236026465107675L, - -2387834721762557666L, - 3231705025344572693L, - -4855075972961874506L, - -4885183281004063488L, - 8097441972752472290L, - -5620463229031782622L, - 7574868212737343521L, - 8681941269840717726L, - -3486423124456001000L, - 5744244643650494004L, - 1014205046998613439L, - -3068068226567078353L, - -6908549673521465879L, - -1963051143946794321L, - -7035572219116690072L, - 1540941112525663170L, - -6001520532777183018L, - -6097551378241760053L, - 2960057374064581400L, - 3321150298365188778L, - 6355960073926449062L, - -7405638803189110774L, - 3687349663678072492L, - 7457820208992039828L, - 4506866448636890209L, - -4654784871604524478L, - -6973401381709164081L, - 3047431536639897259L, - 3083474008161625734L, - 7390801469345280746L, - -8119102525062060290L, - -2941186586599229109L, - 6543095150723391014L, - 1289924509787893294L + 0L, + -5489459004343878315L, + 7503380622199085724L, + 2441079805732305625L, + 8819902077857493254L, + -7239504485102480291L, + -9103724217032567499L, + 7826741851900927935L, + 7861549010645900695L, + -4129502239425616770L, + 4078461785955388090L, + 1489179179228483555L, + -6880302114450925784L, + -1359221788845957867L, + 3262871501411962535L, + 33112984866957419L, + 100800524801407501L, + -3943434617574838336L, + -5567763290832289441L, + -6049917652519314692L, + 3409418409813158633L, + -2513363768495658276L, + 4729321061686624929L, + 5115271314646777786L, + -1775717939635903349L, + -8985310044214288169L, + -5289981668663347291L, + 2657445282762234064L, + 1658189325818139403L, + 7040959815147060996L, + -8236343544564189629L, + -6468423844022575750L, + -1734633079588783454L, + -8679472524235675133L, + 8623155328902958458L, + 8266452376374499416L, + -7986536660276263608L, + -38125844968838697L, + 3921548615006566009L, + 4167944986113577315L, + 7096373300544578406L, + -560467948694959375L, + -850973896622675114L, + 6041177228348470283L, + -7420438933559505984L, + -7157017808797228913L, + 9217073653386571039L, + -7925541759804601833L, + -4487790335997352328L, + 2187762356575143872L, + -5206697366103859618L, + 8288284347584621435L, + 6423483699864562311L, + -1301663738927719460L, + 5991822234757129975L, + 8484285492972108171L, + 311551427639324312L, + 8099673191736882495L, + 4653698799511358644L, + 4648482686787053407L, + -4597597110260670199L, + 1984036580098860995L, + 3448207916911718973L, + -2419012589431525517L, + 8388910627173913596L, + 189931510972302233L, + 3424055321741735739L, + -945841679237989100L, + 2168309080935198613L, + 3930831257313125476L, + 5077730010723338083L, + 5376103945202976111L, + 7108178613986510272L, + -9053383358889392039L, + -2078618651987341503L, + 8653340598805107048L, + 8828877028299898393L, + -8807324610935730640L, + -5999341882281512306L, + -4455338180650516077L, + -2009585294493958968L, + 7588673118342431490L, + -6389009730910810602L, + -8947948912760624317L, + -202446748676143218L, + -6162519566164064386L, + -4803722494667158367L, + -8605895565747471606L, + 5066687539085198609L, + 4310933084750715996L, + -4304304530429964114L, + 7737891570612803812L, + -3921768646472251957L, + -773766867734108857L, + 1818530881116628286L, + -9067673379583734262L, + -6823589291299652903L, + 776981371466262375L, + -4725670966108995L, + -8569242227636325585L, + 7909516787010450443L, + -5409862721314071515L, + 1913390982618688260L, + 6633081673493660503L, + -3605710376875214656L, + -8651943069220377447L, + -3425208691350179262L, + 2023446091470969965L, + -2468046963501962333L, + -8040451662076760690L, + 6158975019111504792L, + 6451542295099535005L, + 1802801579248303870L, + 2903003428319375652L, + 2834890810006302360L, + -6999968617065854757L, + -5369183269958550280L, + -6215225450449404642L, + -4073062335503587325L, + 456244319192879701L, + -24866508719391059L, + 743755516945687656L, + 7224143490658054462L, + -3977052728265338488L, + 6697206251899645381L, + -1994430781487194731L, + -212878833179631937L, + -3790446480600918357L, + -8511592301089770863L, + 1219524981576986810L, + 4205669984974194347L, + -9209991568622991160L, + -8128478767060283641L, + -2076540995963994161L, + -2831442865177886383L, + -1554323285239301165L, + 1155483303982507802L, + 5625007334328700567L, + 7506810827241318270L, + 4850815999417875788L, + -8326271238555403498L, + -3594934673556658753L, + 9130555384341207831L, + -1636079010828843126L, + -5064854279878768025L, + 6320681008229340321L, + -7870114218944117341L, + 459008888574399930L, + -9220264964593181895L, + 6941777480363861135L, + 1923797770202213346L, + -7993097353081304854L, + -7062721428278188440L, + 4641857350677613467L, + -1122321128205157978L, + -3526624090474535074L, + 4944983273040270843L, + 2063583183742948633L, + 3655700015999632472L, + -5913958156741267094L, + 8613461621342346429L, + 3728928562759850702L, + 6241947623237199216L, + 3774760249391115825L, + 6588067708543859113L, + -315068792768811173L, + -5773745174066109816L, + -3452596043397112080L, + 7177068584300707868L, + 4097817609960514365L, + -5523936337054287311L, + 5444453562100935555L, + 3539268898986090748L, + 7209639972437712982L, + 8208887215850721310L, + -7584003436803008027L, + -586284534101862111L, + -6581923378985929195L, + -1292149830675494156L, + 8697160487577903529L, + 5250575745761625176L, + 8289951302281058324L, + 9086201969492098206L, + -9184690972075930116L, + -2558748134131757348L, + -9201085943428059583L, + -1203051916666479257L, + 1834444962634487203L, + 3751251954263485890L, + -9131637525800107438L, + -8564897964388077031L, + -4014235661520374127L, + 7772145975456897696L, + 7355322558781294763L, + 1785796348137315143L, + -1810503426695106112L, + -7963306922570812555L, + 8368320991787406185L, + 7378068988124953771L, + 3490895360405304927L, + -2006181578179635491L, + -5275131505037815605L, + 6086715123177826637L, + 1009907222295997078L, + -189851063854443982L, + -7046763987694627132L, + 4056906261431690499L, + 4216346710909753402L, + 8183939407068939669L, + 2208727954886688050L, + -1634098797909572318L, + 540308152596731090L, + -1727304011169135128L, + -6242236677749002446L, + 6755106734652766002L, + 9202496665027870588L, + 3145991544544797692L, + -6269373509996933125L, + 4266947436916246907L, + -3398567844975915797L, + 8384588213561617608L, + 5989354874425809092L, + -153343096544690395L, + 9134497380995453092L, + -6788300148488988381L, + -1072244206525774929L, + 2731859015443790841L, + -3870727816981171328L, + 3166678867327320482L, + 1782381207784406192L, + 582296485367088592L, + 1924609876720457074L, + 2020031065269578886L, + 8699089776427025205L, + -8250138664796740621L, + -8999944208955163022L, + -7762984786287364139L, + -7261637070280909069L, + 8156604099628561139L, + 1927922010019336920L, + -1965484533023120730L, + -7378358867965860473L, + 6664442544791033212L, + 8081003240836167908L, + -4972927228442651371L, + 7037220157993345548L, + -4215239911770630248L, + -5424767419067785938L, + -5015387983382506291L, + 3753298110869126767L, + 8912454012440748855L, + 6246157925622615315L, + -4131608429474620379L, + -8866364110645726391L, + -4098704456672758799L, + 6667152953392950525L, + -2762608273732169437L, + 3667940640226771520L, + 5470356938562609842L, + 244296890800468507L, + 7856373341189773146L, + 3177289659856312500L, + 4580751320975678335L, + 5452034875875902693L, + -6459973872666569214L, + 8625227864473625727L, + -9052197575017583830L, + -7608813006404804371L, + 9124264055991041910L, + -4100497818513510737L, + 2980793238691227316L, + 6575852184122601786L, + 2996374119615737222L, + -5870513842846624786L, + -8762559588158401352L, + -6912312183162430280L, + -8032694211707482067L, + -4215194693068873060L, + -8105263246073793266L, + -8307710354093860627L, + -2478197063796008569L, + 6680336333415266706L, + -3911773407997852436L, + -7238133989410260247L, + 8137218262646498370L, + 7578266702219259398L, + 4984246736570911861L, + 5740916903194578939L, + 4650616964627618168L, + 930361122203084377L, + -6713840012306591264L, + -6351841364919936067L, + -2925823570763349733L, + 2325060427136132089L, + 5274176558463348026L, + -1818816163370336308L, + 4226120637281533162L, + -8207986865454475590L, + -6725133576876609787L, + -1600898310239203030L, + 1696982907642760280L, + 3217068829621413413L, + 5726899844622119885L, + -5334923571927126756L, + 2497036294033639132L, + 735344340727198341L, + -8578481740421909478L, + 5911424493524947756L, + -2237081032372483426L, + -1561034557541861451L, + -7693466035562951498L, + -8752739978025721151L, + -3280877235853016561L, + -335598525248223652L, + -8083858348383020986L, + 6627393503177414372L, + -3295140360722222876L, + 4582776009525319397L, + -5331509940479931877L, + 7726342923596696881L, + 5192783923588484563L, + 5568191868601892365L, + -4393837608149654125L, + 1618228693783883350L, + 1865907879575939327L, + -6187340976863502879L, + -7405067505368332090L, + 8443777486378865412L, + 310723497241167764L, + -5731861018710458545L, + -5188200524108388224L, + -5634297329175284953L, + -7899478064688965957L, + 7020598068122504891L, + -4174871225816409135L, + 7104858324370686207L, + 1001810694886929241L, + 4733684478957873906L, + 1798707327797267468L, + 752841691753555520L, + -3603149832862524798L, + 1130977238495142718L, + 6955284253225269412L, + 2247585991738722824L, + 5340594336749478221L, + 3633355463323711913L, + 8199061420280246379L, + -9034722840567119949L, + -490757115109600212L, + 7729314659586557941L, + -7671659041667731989L, + 8094072612753317160L, + -1759769045835117937L, + -6152365461952206160L, + 3606911680259234419L, + 6955318748746854408L, + -1011200841397882883L, + 5519324885444860877L, + 639515187583097557L, + -8137297682181162942L, + 2539677958872014602L, + 8313575916214347743L, + -7407936988953985656L, + 2917949547560244958L, + -4496138768486595800L, + -333949342684348960L, + -4317613540520387633L, + 3175626083058125320L, + 3148487542664978970L, + 739198439328606230L, + -198883737414807980L, + 8353961470331151973L, + 311945919273194245L, + -7052740176726980689L, + 5254438376261024030L, + -7550828065282849515L, + -34611043042402666L, + -9223367429051483136L, + -3370299527924413091L, + -3126722705768731979L, + -7163303945559650746L, + 6785247517465168600L, + -7406637645862089930L, + 3385765690609235233L, + -2811478167849833354L, + 867164096842195609L, + -4105629147992376513L, + 3062984161819352214L, + -9109105071124058400L, + 6860897610277413293L, + -188188174565377756L, + 7884790815752132293L, + 6738195176410269361L, + 4393541369181811113L, + -4968060783295630360L, + 1281959927064810831L, + 7544219152372891202L, + -3139356250465507412L, + -4662764301598305279L, + -5309739957670290877L, + -2335698040008447736L, + -5063258188578883170L, + -6060472572881319296L, + 8510043957998376964L, + 8054425688228121580L, + 467181640856973250L, + -8554733707863771098L, + 3945436629188897073L, + -4648027966578763700L, + 1436821870625146671L, + -6039021841572044396L, + -162916729795043698L, + 1387478937752001176L, + -5009376788980435331L, + -427324746652961365L, + 9045326031349144872L, + -6571167574055307665L, + -7420045062343802233L, + -8281911816922916681L, + 4447883374750578122L, + 8857646523249955246L, + -5267905974004184533L, + -6586019939801565413L, + 7267509981674277869L, + -1730011012540783294L, + -3361327884510257968L, + 3153991252302571831L, + -8310723694192823368L, + 7365064041171947240L, + -7013288395764077337L, + 4424660961017823126L, + 7969284775663103753L, + -4673682312621214884L, + 2388177300282901685L, + 6610519624906161503L, + 8382367186870347676L, + 8011820517530369081L, + -3416914590527734423L, + -4432873885847563136L, + -1241220595388288096L, + 3560316095147026509L, + -1797075113553514394L, + 6552677553429396356L, + 6246332708352927155L, + 3861438072358225949L, + -8565290136579594910L, + -8002406576632498243L, + -6412781196438208222L, + -9047876088717010136L, + -8568000574169975921L, + 5244941923904200088L, + 1628817165486138289L, + 5749777718311982230L, + -8611048104500552826L, + -6407884750949781504L, + -8282995989967171744L, + -6031458083272026720L, + -1472077105364514517L, + 4504451286765383015L, + -418652306528352371L, + -4257356316730897484L, + -2957389181041677312L, + -1145720335115263201L, + -3091972849220173524L, + 8005939599601764433L, + -3417016708987198366L, + -6247258224636787950L, + -472464393458793289L, + 1487875631970459019L, + 4893795040625314681L, + 2729581410182440515L, + -5405273280140448608L, + 1452154199208270257L, + 4883843472429258182L, + -8796762596319773668L, + -5429154805367510111L, + 4426909737432342245L, + 7056415113393668414L, + 8774883135212925637L, + 8450999418184998816L, + 3820763711897833468L, + 3300743371144621367L, + -1630173808856631543L, + -8553736113528269822L, + -1370002862968307889L, + 9214585244396484676L, + 1427686269336175185L, + -3598631782642855473L, + -5269185928615394541L, + 216499523242669211L, + 7102788753870316442L, + 5649046266779873829L, + -4035565318503894376L, + -1855507138875094206L, + -5459594227201815570L, + -7410474841354966828L, + 6975082282771211247L, + -6353323886182944803L, + 646100630104660099L, + 7745081824763595518L, + 1579836547749948481L, + 7479608073819635972L, + -988819659251472110L, + 3121457552118354542L, + 1867337923564303955L, + 9039210151448164075L, + -6005672592365502974L, + 6809724817190798332L, + -8247807826434556808L, + 8599378181039531724L, + -8714366537708795385L, + 6194756214969034120L, + 1931855937995972224L, + 7780282029507594520L, + 3768324591352426949L, + 4770908273445282121L, + -5412117564459724461L, + -6910299206138527089L, + -750571165687777551L, + -3467143436546008630L, + -8778968277750614352L, + 4618269006460421671L, + 3784770542544192149L, + -6555035917940220116L, + 8763137794052904168L, + 2160001599658800708L, + 6579628917216038693L, + 7486800118422365343L, + -4727709771709935935L, + 9187028796349560592L, + -7646323237657128497L, + -7748151792724558120L, + -6629529116619603711L, + -3614919661598905131L, + -8926765781889646711L, + 4895079662109541742L, + 2313039280851327331L, + 8353059951121245572L, + -4361790301612843227L, + 878233584623997873L, + -5808341064891365335L, + 4957901996955185469L, + 722227598467337170L, + -8083855043640093449L, + 6296815072878721220L, + 3074098970376702630L, + 6487949451261677276L, + -8230337956949714079L, + 1227684096490474594L, + 3317131110226161460L, + 2781726232095396341L, + -9035241125603661424L, + 1004655391950987227L, + 757196511985132878L, + -4972385379979135932L, + 377837633918307403L, + -1837164923183207790L, + -5200366587699061855L, + 5619426661630165722L, + 9149546739708634949L, + -2161224822270988047L, + -8498758122904002877L, + -1903606037752461125L, + 4004956335353186480L, + 5899754692366277712L, + -8569895455403315824L, + 951203285725380985L, + -724485898478246754L, + -2310191424936462146L, + -1054133327199042402L, + -4761860002343924045L, + 2144188224512375766L, + -8618252392915479178L, + 562427488463506661L, + 4069612511580576356L, + 2846217274335476972L, + -5321770005300190195L, + -2665939903796278305L, + -225615242036287371L, + 8340124049763317532L, + -39328151188901959L, + -7704128105896373508L, + -6608889722744029365L, + 6847177601802070732L, + 5406538445625075780L, + 6056004216550410553L, + -6388427415087871994L, + -8510724109624398612L, + 1448506476683617231L, + 7013188100856212082L, + -6841370342344231710L, + -7996960406936053822L, + 5644557457158245692L, + -3296152646650497129L, + 3536461329613452151L, + -437075207063513146L, + -2301050489557934983L, + 7033064488351122705L, + 3720571868910950941L, + -8581343467023390064L, + -4996282238270355618L, + -4434808715189273218L, + -405745463035508082L, + 277285441155208541L, + 3640603191696429655L, + -6364389291678904211L, + 9077697777962306790L, + -4001601843892243802L, + 4036732856234956705L, + 5248392274720098326L, + 1116847972047877816L, + 4922394575619327211L, + -6285322752897148435L, + 7067487638261530629L, + 3473525332456520606L, + 1575187083569040662L, + -7670017995359806441L, + -6787510510738894320L, + 2880618714956167265L, + -5120445290790388729L, + -1947917760777447734L, + -7623296073694422101L, + 3252361779690367994L, + -8216056055022359562L, + 7525264382031021147L, + 2009893625701158286L, + -3406258625692336241L, + -2113315207827000149L, + -915671322135664152L, + -682373916879109470L, + 1102410309220747041L, + -3371660099417710298L, + 1284384932118496184L, + -7899332066557362531L, + 6082326747969637807L, + 6505116014978799418L, + -6638025017400409848L, + 8709456587813780355L, + 1040637469205493394L, + 7527200228140193048L, + -8009477968838239749L, + -7823164037283850971L, + -219876523001630476L, + -848139362896608550L, + 1659572939496253703L, + 8161950828762262292L, + -5426744617505876369L, + -6207765518458666734L, + 1330209524194208987L, + 312506988145426657L, + -8129873431497496113L, + 2982679062731022510L, + -5042254163968603642L, + 7189511553154561296L, + -7590604770017947250L, + 120767234548166783L, + 3585968789169172934L, + 2487430371362637909L, + -2117477977959815963L, + 6421046597883904862L, + 1915941733899660405L, + 7900047779862894999L, + -7543931826611217049L, + -4916952521775291426L, + -2868801994144941951L, + 6651512411349747168L, + 5311738336671629395L, + 1306146344435585753L, + 2360381402797636290L, + -7691226452323755207L, + -7944284715220814174L, + -278406581618280958L, + 1353480834890980580L, + -649067407317035048L, + -3147933535381057618L, + 8567698068491364114L, + 2639644310821531916L, + -2152161395283566770L, + -4888814748855310545L, + -6303207358154211232L, + -5099131870614196461L, + 1424098929808643092L, + -7162716687949255953L, + 2211086469787899963L, + 2852072241831923863L, + 4450856661460487818L, + 1332130522000219486L, + 4147251563283461874L, + 1207043674339706873L, + 5443671922124706933L, + 1900093839190289799L, + 7347503945522504540L, + 731422176531392690L, + -6899700774889484649L, + 7348057852476419965L, + 4763308267257593468L, + 70257218879991846L, + -739514492116955951L, + 7591767932477900284L, + -7791579872430789094L, + -5400779832289360193L, + -5360582829574801216L, + 6569971639852448678L, + 6160828497878986046L, + -1727168098652705184L, + 2168846004878378381L, + 3297327696375153959L, + 6816148183875835322L, + 6384670180559749639L, + 5098012111875182199L, + -8698209070789796773L, + 7063131632249681588L, + -994727287627957439L, + -8454912490309479278L, + -1616686461984094239L, + 1344308255896663208L, + -8614195194739181643L, + 3663344734731025818L, + 1074555005632296286L, + -891663858889754871L, + 7659504325229552894L, + 7916780674786126372L, + 8131132452406873222L, + -8409366302969284111L, + -7706327771470710338L, + -6629724794338812712L, + 4368055399977230653L, + -7898426087691236094L, + -8547784929920600040L, + -3916622571725474306L, + -4989308590637893844L, + -4255097229406935303L, + -8312609963939033197L, + 6449019140953263140L, + 5157342915532938711L, + 2114971170894382906L, + -3301242078535642691L, + -8424713197061111009L, + -4112134632049136236L, + 6249939489475102785L, + -6545073932128498060L, + -7043982864808573077L, + 6372613537930878573L, + 3190762373477289654L, + -2561239600356400775L, + 5207465341857679769L, + -6030085238141555836L, + 1973763449748050094L, + -2775325371903939992L, + 5477072914568061968L, + -8020494920018725702L, + -6778226228458777374L, + -2143361845827059097L, + -322386110818436422L, + 8486418337526930389L, + 5809129796682159464L, + -229942269923625040L, + -2016398216082799086L, + 4390670686371535226L, + -2276539331110400014L, + 8774439736263797799L, + 2316161663149901044L, + -5179580561974546556L, + -2396133401944865178L, + 3993962098659830835L, + 5629462452797886102L, + -5192061905328685380L, + 5410941996746617173L, + -3413195609621963464L, + -3061527928424392689L, + -3054113352229014259L, + -6424671610054662331L, + 9078610721616192048L, + -8898368096446875621L, + -8847632839009160349L, + -2332831971225170476L, + 3877449624663826166L, + -1998707448586751868L, + 5429087783572068454L, + 7505803154815651797L, + -6830143293644567388L, + 9027942884466367570L, + -5480807710956981276L, + 6168732146645754047L, + 8449301918694745548L, + 8778131551317466896L, + -1532492605199755867L, + -5391910637120789750L, + -5181509335176571510L, + 4222261527096078209L, + -68830318451459248L, + 8424841595605316764L, + -1190497481446057488L, + -5111948271985560837L, + 6030679480752773280L, + 7083507386503347300L, + -7935292289390985767L, + 8633627957234765752L, + 3577142810841159035L, + -250643146821978960L, + -4509721932431137882L, + 1505984612542211946L, + -6225351760438749240L, + 2182044745474903681L, + 7360081805774852071L, + -6980851881719350610L, + 606607963933040411L, + -5770107456508471265L, + 6205171527781848205L, + -3033545694812095937L, + 3583699718972282357L, + -7909170363462215258L, + -7171285223522587462L, + -1732747624639492792L, + 1139035341695075787L, + -293770954049652554L, + 8082120553607704108L, + -1767102175355955963L, + 7028133695751489509L, + 8595468330969519695L, + -4137307279143322835L, + -1088171437960554838L, + -4259340386446889998L, + 21294966289363633L, + -591949962374694703L, + -8837800592081259554L, + 7601644682819323767L, + -982502680195313135L, + 4181853267649918079L, + -5294003730853637099L, + -9158462991451185546L, + 7714670871787985179L, + -2721092666693913595L, + -720896668009511516L, + 4921838985018879422L, + -5038198705157071079L, + 7630728150546004158L, + 161966667436904740L, + -6529489221033141970L, + -483227329696642903L, + 2849537400103054469L, + -5932420765747592953L, + 3979533979134217316L, + -4049239836784843381L, + 5757146880398784254L, + 5806736286865906304L, + -8474302415960396385L, + -7391831815026906062L, + 8483126874968724489L, + 5557012499729359067L, + 4450718684927895135L, + 45335272732612289L, + -3785965163879210184L, + -1898242962714602224L, + -3364618253842484328L, + 7668403852309119835L, + 2092013133434607977L, + -1792300051264582572L, + 4204792673868607151L, + 4506602674596874571L, + -2561418149393223402L, + 7840286404246905129L, + -1035302472383225621L, + 2052650440950159550L, + 3385198385403224840L, + 7801853565618136124L, + 8158750483397835365L, + -7255481277968854565L, + -9050796656268415729L, + 7872874903061363846L, + -6332810502682885990L, + 4195093936537787159L, + 4140384146136775979L, + -3176676578208440523L, + -23527475436056846L, + 4821243657012565340L, + 2886979330017289487L, + 7170512846071359835L, + -6693771254646812923L, + 2266839597848142710L, + 3688056798561584424L, + 7956035795239686169L, + 4088975310233216058L, + -8662929922277559505L, + 4700022330330092123L, + 1044087464966463501L, + -3346284225769510392L, + -1166910579445681945L, + 3872703144237011548L, + 8501175525170010672L, + -6207437985662953078L, + -8733361112153680184L, + -3983180467171621870L, + 2283374194446411819L, + -6768484891471740518L, + 8044328097415285480L, + 1443377185537854020L, + 6803666844639402915L, + 8720154422929864332L, + -2537061102409854144L, + -515858108659325765L, + -1158565680316859334L, + -663545770006278500L, + 5112621109506791791L, + -3092170124310912387L, + 7889395149687448634L, + 3388633789092670761L, + -4176247842082877688L, + 8523663650288415701L, + 8461829646589019728L, + 4476120923918733118L, + 4955138021944824086L, + -8201820083387949902L, + -5150243375844302061L, + -6574687189541337134L, + 1813511165037620728L, + -6609152628982158385L, + 8442952354678524497L, + -7676351795757159272L, + -8444140555968619192L, + -6601786601773499005L, + 2179080756673506193L, + -3666129723434408178L, + -6776769795366302107L, + 4171664079486791081L, + -5452069571377540094L, + 359346427326135662L, + 2943062004262958454L, + -3921968176415799286L, + -134281347921607697L, + -8484249901958594015L, + 2812222074991563409L, + 6633639557063290973L, + -592722373574704367L, + 3584411287925175652L, + 354153167171955028L, + 5447276746665911196L, + -8076348065615557008L, + 7731333241037517938L, + 3253442384900678998L, + -5522359985224379236L, + -6208482024641614158L, + -7364261433707360458L, + -5906718475206754288L, + -2204545928435159171L, + -2795996564005833532L, + 2349222489800990019L, + -2358167389589298636L, + -1617861920532466248L, + -5097493153019151553L, + 898922054995315500L, + 3869670625351897503L, + -6636810950712802069L, + 5490098271052481169L, + -6176774370284978063L, + 6938938509865848385L, + -4161311926638539187L, + 3014272433254839403L, + 9058504699799497601L, + 8524360852674201045L, + -740764664775712722L, + -5679661123465313250L, + -5211931178887212388L, + -7017041889364832492L, + -3265178850476174256L, + -1499900928604101474L, + -4067493147979900667L, + 7299368378152484612L, + -7198659177748600436L, + -2979171190660530337L, + -2762966740484030759L, + -7465049739128224935L, + 3612078396397763590L, + 266194042468197276L, + 5473972901094176230L, + 1189281358884994281L, + -1442205020880436346L, + 2879820564038232304L, + 43850317677405067L, + -4454333694153391476L, + 2645494799086526410L, + 3524717291729262494L, + -1894484565386325644L, + 4470670853232773914L, + 3053558524768124235L, + -6378696765233153672L, + 1358648698333278216L, + 8016007574038246972L, + 1967787619451912192L, + -7471676932864790027L, + 8977236026465107675L, + -2387834721762557666L, + 3231705025344572693L, + -4855075972961874506L, + -4885183281004063488L, + 8097441972752472290L, + -5620463229031782622L, + 7574868212737343521L, + 8681941269840717726L, + -3486423124456001000L, + 5744244643650494004L, + 1014205046998613439L, + -3068068226567078353L, + -6908549673521465879L, + -1963051143946794321L, + -7035572219116690072L, + 1540941112525663170L, + -6001520532777183018L, + -6097551378241760053L, + 2960057374064581400L, + 3321150298365188778L, + 6355960073926449062L, + -7405638803189110774L, + 3687349663678072492L, + 7457820208992039828L, + 4506866448636890209L, + -4654784871604524478L, + -6973401381709164081L, + 3047431536639897259L, + 3083474008161625734L, + 7390801469345280746L, + -8119102525062060290L, + -2941186586599229109L, + 6543095150723391014L, + 1289924509787893294L }; } diff --git a/src/test/java/net/openhft/hashing/XXH128Test.java b/src/test/java/net/openhft/hashing/XXH128Test.java index 5fbc842..dbc4088 100644 --- a/src/test/java/net/openhft/hashing/XXH128Test.java +++ b/src/test/java/net/openhft/hashing/XXH128Test.java @@ -23,15 +23,13 @@ import java.util.ArrayList; import java.util.Collection; -import static org.junit.Assert.assertEquals; - @RunWith(Parameterized.class) public class XXH128Test { @Parameterized.Parameters public static Collection data() { final int maxLen = Math.min(XXH128Test_HASHES.HASHES_OF_LOOPING_BYTES_WITHOUT_SEED.length, - XXH128Test_HASHES.HASHES_OF_LOOPING_BYTES_WITH_SEED_42.length); + XXH128Test_HASHES.HASHES_OF_LOOPING_BYTES_WITH_SEED_42.length); ArrayList data = new ArrayList(); for (int len = 0; len < maxLen; len++) { data.add(new Object[]{len}); @@ -61,2604 +59,2605 @@ public void test(LongTupleHashFunction h, LongHashFunction hl, long[][] hashesOf LongHashFunctionTest.test(hl, data, hashesOfLoopingBytes[len][0]); } } + /** * Test data is output of the following program with xxh3 implementation * from https://github.com/Cyan4973/xxHash - -#include "xxhash.c" -#include -#include -int main() -{ - const int N = 1024 + 256; // at least one full blocks - char* src = (char*) malloc(N); - for (int i = 0; i < N; i++) { - src[i] = (char) i; - } - - printf("class XXH128Test_HASHES {\n"); - printf(" public static final long[][] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = {\n"); - for (int i = 0; i <= N; i++) { - const XXH128_hash_t result = XXH3_128bits(src, i); - printf(" { %lldL, %lldL },\n", (long long)result.low64, (long long)result.high64); - } - printf(" };\n"); - - printf(" public static final long[][] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = {\n"); - for (int i = 0; i <= N; i++) { - const XXH128_hash_t result = XXH3_128bits_withSeed(src, i, 42); - printf(" { %lldL, %lldL },\n", (long long)result.low64, (long long)result.high64); - } - printf(" };\n"); - printf("}\n"); -} + *

+ * #include "xxhash.c" + * #include + * #include + * int main() + * { + * const int N = 1024 + 256; // at least one full blocks + * char* src = (char*) malloc(N); + * for (int i = 0; i < N; i++) { + * src[i] = (char) i; + * } + *

+ * printf("class XXH128Test_HASHES {\n"); + * printf(" public static final long[][] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = {\n"); + * for (int i = 0; i <= N; i++) { + * const XXH128_hash_t result = XXH3_128bits(src, i); + * printf(" { %lldL, %lldL },\n", (long long)result.low64, (long long)result.high64); + * } + * printf(" };\n"); + *

+ * printf(" public static final long[][] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = {\n"); + * for (int i = 0; i <= N; i++) { + * const XXH128_hash_t result = XXH3_128bits_withSeed(src, i, 42); + * printf(" { %lldL, %lldL },\n", (long long)result.low64, (long long)result.high64); + * } + * printf(" };\n"); + * printf("}\n"); + * } */ class XXH128Test_HASHES { public static final long[][] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = { - { 6918025063187695999L, -7374073936536430376L }, - { -4302098779834749733L, -6427377105285148822L }, - { -2998166160713018281L, 7659024777716224941L }, - { 6864218090047839419L, -2038618426559555633L }, - { -6480366142596956747L, -1481473859315439130L }, - { -3953929349995588965L, -7767492055996579519L }, - { -6434184480940321117L, 6079588180421601534L }, - { -2616020178111209730L, 7047615666104579453L }, - { -3470854323700000575L, -2169535271171686428L }, - { -8036337532808841402L, 1641396966678784974L }, - { -1838610295139896408L, -4786474928096720073L }, - { 9036419607108199075L, -6004001502991493996L }, - { 8611141083647120330L, 4105350226480938181L }, - { -4793706706242476352L, -5867379820156476408L }, - { 6185226889748380721L, 6886539015187124138L }, - { 6731536092874631L, 3466258189393024666L }, - { -8923861991986181406L, 8256512301565609954L }, - { -4580685021937757673L, 7519819888072656255L }, - { -2043568341533119453L, -8660816345503928947L }, - { -4288028997403044897L, 8510040706351439064L }, - { -3641643329425012519L, 2411460379579264364L }, - { -6817119268007077771L, -8484709459460756717L }, - { -8321648494418841644L, 1039740944917575917L }, - { 3538050101539897582L, 2362743675522042414L }, - { 5258435933086838188L, -4848199824445801375L }, - { -6362280687837106391L, -6773951973449392900L }, - { 4361114911410139889L, 7972785452136460766L }, - { -1076301070271465131L, 8384558886439123465L }, - { -4260306398241836702L, -4749396038389899603L }, - { 7705536077211324767L, 7065275513754572192L }, - { 8848360094546279194L, 4251126870462033189L }, - { -5382395732421186272L, 5680046751876868219L }, - { 5007322629095085719L, 2731373470772162258L }, - { -2266009261689938298L, 150690519598499383L }, - { 5654476833875738032L, -2061690640343340129L }, - { -1954811291194740257L, -5419036513975901981L }, - { -6890789870811920961L, 2325998689782383239L }, - { 524837945339210726L, -3715887750118223357L }, - { -1133972665109461700L, 8834173286146294154L }, - { -4865757570688729898L, -6727182884028692069L }, - { -5911952424608985308L, -6049127781180242975L }, - { -6304772494633596832L, 4470293576424874190L }, - { 2836199333566295238L, 8864173708278309166L }, - { 3102360108557900747L, -3733512248908528829L }, - { 5510180088237800518L, 4123807595437003297L }, - { -8414952918150047989L, 4522684623950545953L }, - { 5518787400664681885L, 2205797938276248879L }, - { -4455668116525212265L, 1731227964152171874L }, - { -669789427027077066L, -2931659152274064678L }, - { -5683078161783893371L, -3845762003302041006L }, - { 6680667259477693981L, 6292675962771587338L }, - { -4632250858732682011L, 6003962969507266903L }, - { 4901952080618105871L, -4810616663349653181L }, - { -4868621977036224471L, -613718830978964302L }, - { -8549747210893534701L, -7652856120690185923L }, - { 5559482992819465126L, -2935778481022073662L }, - { 5338789689922860629L, -7042626160273499760L }, - { 1932600112628823928L, 6801794573522504318L }, - { 416099586592393932L, 6439908650131601962L }, - { 7024137889223187025L, -2290925491907122061L }, - { 1045082728260193951L, 6309788576958218843L }, - { 6002976951327322033L, 2207846278132305118L }, - { -8528919693413636608L, 2135399881265353259L }, - { 216915620139749202L, -4932202155253948654L }, - { -8015959707258401164L, -7174775121992399387L }, - { 1940599133729319055L, -1446235614858172175L }, - { 2459358417139019246L, -8654965189671283179L }, - { -7818955503663384729L, -3934147459468506343L }, - { 1042851174159079970L, -1979910437861944855L }, - { -7917252407765639829L, -4633245311428649467L }, - { -7720303362404590874L, -6295287635440345944L }, - { -4157762089433661655L, 6496007637698701064L }, - { 7715936428342659469L, -1469964384035074732L }, - { 4195235191127312039L, 899631082723122736L }, - { 5215159923805118598L, -6545879335313020661L }, - { 7616735844785551706L, -7041352949020998262L }, - { -8947005412578780411L, -8900196105579670687L }, - { 2608419102060352937L, 2291692068482575428L }, - { 2932246401534482789L, -808561230173772212L }, - { -5972416795070818118L, -6748248077446108801L }, - { -5022910438308829379L, 9072885020094111509L }, - { -1910630276390364207L, -9174830524950881316L }, - { 8023252197284180464L, 8037539466518319583L }, - { 3380163176409638595L, -4855957689303967113L }, - { 9039213805856064871L, 1650794118333894986L }, - { -2271629174168076410L, 1347251894944291291L }, - { -4820143586371341417L, -3594063807503715367L }, - { -4959944807440428194L, 5383365720172155085L }, - { 7003928884444229348L, 676120417416765368L }, - { 859489746443979827L, -7833483946396960669L }, - { 9102710007397480162L, -8584324320197179283L }, - { -4175348964434949086L, 5647267223701886330L }, - { -8008637466668367969L, -6055429896007822421L }, - { 108482635692190168L, 2968129854880531728L }, - { -9011339488466116365L, 8434635880912750808L }, - { -4004467558640862965L, -2442649750845279594L }, - { 7949886151835604363L, -4218369913800524038L }, - { 6571460655316068733L, -7275245798374398558L }, - { 3933351809358110799L, -6947442526623576080L }, - { 7530035428683392997L, 2445755963621946807L }, - { 3004476708737695774L, -2695985919888627981L }, - { -6839738311238403945L, -5007277885229986319L }, - { -2115438695015824267L, 8793986460873025460L }, - { -6122328203320968341L, -1039312793807793706L }, - { -5548421559246888919L, -5432599954223186038L }, - { 3128331988620583536L, 9069025730792010839L }, - { -8643493112127109679L, 1331229929640790962L }, - { 8814314992955228960L, 3847902944293450150L }, - { -4787601413732006112L, 8900584343805263383L }, - { -7388222168387984808L, -9082309407529645857L }, - { 131518593310830564L, 2590646000392089354L }, - { -6324750245753466159L, -2802698424622117505L }, - { -8649508569357882764L, -354092374739121335L }, - { -5132193229074755277L, 5349864399629044838L }, - { -1406233318133878829L, -7778322178019776638L }, - { -1351642603059584651L, 5905272679963588442L }, - { 4703467631404861482L, -1412638527591654637L }, - { -143562322856237972L, 246782552965118392L }, - { 4729655314786007157L, -6812953036143724656L }, - { 1143435340240345532L, -671788510726657486L }, - { 4142673406702890802L, -5618565448224292259L }, - { -386385592979460209L, -3300708192346055254L }, - { -968019894004968401L, -8047458695647085054L }, - { 7431201141513763234L, -1398860770070745887L }, - { -8435079361655022794L, -7645011917469248859L }, - { 4882503199526148408L, 4410126282669136718L }, - { 5872988456826904838L, 773528843558202110L }, - { 435774107218292665L, -3049543393726570481L }, - { 374390355263912769L, 1475262870450658412L }, - { -4886205263344788933L, -2495428859633732274L }, - { 4523286614199751311L, 7841582144919037703L }, - { 6199714818303858941L, 7901445636911613076L }, - { 4303994841625385970L, 2937718694375539717L }, - { 814757341681862090L, -6478582819189379036L }, - { -5700445004887010774L, -8455858509054528766L }, - { -407790974857570816L, -8859596179726191766L }, - { -5805754751830269767L, -152275305346719872L }, - { 1598196252757994963L, -3928731748771019828L }, - { -6934713071114934765L, 3826064854799786237L }, - { 2185603020959026426L, 4940136396487362160L }, - { -2709341181476883011L, -3919124922665860644L }, - { -3382770288363519601L, 6073097037575507405L }, - { 2971838200308166371L, -7934498192931647428L }, - { -6368589310665521963L, 6154526145046318539L }, - { 6353042450513427021L, 2744250502633008273L }, - { -2886123871504743256L, -208572599238022818L }, - { -1624168552941053619L, -3913047860997752862L }, - { 7320019149991831488L, -6407203038559925672L }, - { -7826562494167066071L, 3656950149331658711L }, - { 3032358658826888909L, 8478297990310817113L }, - { 6635552159941043305L, 2369935842067964507L }, - { -7730726826982994831L, 2814934766308141432L }, - { -3283541548043086026L, -5626755390737090180L }, - { 4756392346740163255L, -1618854092540178479L }, - { -954514304963761905L, 1120375285910469551L }, - { -2677127018316745041L, 4533997389224788953L }, - { -6498470148726531477L, 4211221291483652077L }, - { 3703731056182724504L, -1291375588013924342L }, - { 8390865458275667313L, -111721904773166244L }, - { -5861077228742736805L, -2070386036672698890L }, - { -4143367647396165132L, 5662645194542529413L }, - { 3940052427164582775L, -8034322082658011232L }, - { 7449120853716556570L, 5233008944754805539L }, - { 4707315860283250027L, -2735344620674927100L }, - { -6483773415321497379L, -8801767122342998918L }, - { 372467878783610102L, -6728271425602167056L }, - { 421540060564964849L, 6814719141747896598L }, - { -2932751110479442880L, 2620333485388819159L }, - { 8138296947263184633L, 3186892836605521521L }, - { -8443166457721319544L, -295561944926731323L }, - { -3484858775294549484L, 999377954767431452L }, - { -3825165428097955770L, -5266530330876878010L }, - { -6113875314365935219L, -8700518321068076907L }, - { -5236044337855094887L, 4166279963844450417L }, - { -7689418202059025630L, 2745081882899556912L }, - { -5994295218119667616L, -7200741691189504631L }, - { -1019731893393738021L, 42985972231797947L }, - { 7964057313498750371L, 8468135790260799298L }, - { 4350973314535291960L, -96363394771300893L }, - { 3374846342506204851L, 8183621324647001307L }, - { -147780277660396961L, -2020465953003062925L }, - { 8087892087579153542L, 2081576827994983699L }, - { 3656634502747737496L, -9188914506833434747L }, - { 4352397869817031502L, 3608087870457978178L }, - { -5463203683033862729L, 4794961360367615558L }, - { -5829826499110216168L, -2966406905602723212L }, - { -6224968695182446745L, -5757313901190477182L }, - { -162412897360955265L, 4602851342136911659L }, - { -313093481501038119L, 726082021515462476L }, - { -2394654531394959372L, 6077061020288043189L }, - { 7129356685384777594L, -242956320069229460L }, - { -5610165828587809576L, -528970810714251548L }, - { 364583333953451656L, 1209647354565391723L }, - { 7770189435264039886L, 4432114537846063450L }, - { -5378637197958159683L, -3569583594959549373L }, - { -4245901361761642000L, -4908415462875986721L }, - { -4163321130952495919L, -8783734595860148591L }, - { -8760784759435664042L, -4001594145043032047L }, - { 3811531583056254939L, 7138061436855517595L }, - { 8328872328718915031L, -4681101102915066754L }, - { -2479256131109004811L, -3818044021289010674L }, - { -2564801102635362682L, -7621503644046974425L }, - { -2549390396843178245L, -1355036253044087129L }, - { -8447951661202617313L, 7367005715843213070L }, - { -7223721101136301216L, 5932237518320039024L }, - { -4579553338717938002L, -1415752620502773376L }, - { 4739886663385123868L, 6842423570713214542L }, - { 8761999406836444027L, 5431773349801366084L }, - { 6275926421168556271L, -6741136388070930457L }, - { -5553742881209813652L, -7463405596637494313L }, - { -5466140015739861861L, 7090908124796334951L }, - { 5086336981243921643L, 620608991523776456L }, - { -8583190303195622879L, -2528844698405021565L }, - { 8136795285908184024L, 7834757658823892326L }, - { -6251123780956813536L, -2362184439993799450L }, - { -7029587377954900822L, -457385112617225992L }, - { 3992372666585781254L, -3425505215948273419L }, - { -8934415453060377171L, 2889516969299688088L }, - { 2171086741014253062L, 8747101652358416539L }, - { -8138586755841972043L, -5230807087849230444L }, - { 1593528759643563657L, 25684661437075760L }, - { -313864667208179242L, -3034251152967214837L }, - { -3266427946201164069L, -7205525509099849070L }, - { 1393676534450976148L, 1600133987975139142L }, - { -5699612540743270476L, 2411808686028794220L }, - { 3643737955198081018L, 3624719045997588137L }, - { 179868577584127337L, -2425054572247905446L }, - { -1202636047919483341L, 1008426614634206792L }, - { 76328973038141475L, -6532258192268933884L }, - { 7815448976579876396L, -5793434878495490438L }, - { -2551332906614530185L, 4894172006704360878L }, - { 7897839487727186038L, -115287274417874605L }, - { 6782385125028425703L, -3521765042231025350L }, - { 2366096266549575004L, 1600704175490725006L }, - { 2646330593616093333L, -9112186430548909433L }, - { -5734352638286816291L, -7935930112754314515L }, - { 205990945300406766L, 6482328665055844390L }, - { -4107074334265298499L, -3655747932822203685L }, - { 3070291460260888908L, 8334448736154584008L }, - { -134765739369511623L, -7474942726871719713L }, - { -3950948930639643722L, 7328973455013265639L }, - { 209643423615708418L, 2135211318988808865L }, - { -2464819451665246158L, 1595264701587118086L }, - { -8631718977760664612L, -4814735239273499159L }, - { -4893221336143393409L, 4608470873153960630L }, - { 2390264798730683615L, -2505079969232422515L }, - { -8300749389255144164L, -4091945713696362506L }, - { -3549775289570958064L, 4711670840533830052L }, - { 6514441262456966668L, 1033420383904761807L }, - { -7301663820335638615L, 1786260203217802269L }, - { 4181559756778549411L, 1887690114220705884L }, - { 6215253578855337690L, 5107740194043393909L }, - { -7323335092456459405L, -7054773565482904481L }, - { -1860577032441476467L, 3268456599417932306L }, - { 3644299936077808538L, 6853477546599029409L }, - { -5161174126835724701L, 6418903298992325081L }, - { -7779787747613135503L, -1010872026945774909L }, - { -3446338450597548406L, -172855764288287246L }, - { -2662609220502962318L, -8015039012110903940L }, - { 208946340318274486L, 2793507753767981995L }, - { 922869894074454969L, 4440830233961398693L }, - { -8428909140908329623L, 2106468816516885040L }, - { -6875524699939418906L, 3742616954716811326L }, - { 5154230294972327697L, 6150997880677494555L }, - { -5868880138852165350L, 7468379017433552164L }, - { -2697155020815738737L, 4313139001296146702L }, - { 6278899766774254324L, 1368605690955846609L }, - { -6124877505863871039L, 1078518665221359628L }, - { 6113186870348198684L, 4141878510658134343L }, - { 1328797232741421065L, -3543059961120850079L }, - { 8936960355443139766L, -6946112468654970433L }, - { 9069883653377839816L, 5148075934725699275L }, - { -6698244186639407697L, -9162869098327881138L }, - { 6633988379507542818L, 5549765864648998779L }, - { 4243888593320380368L, 2997246184917475828L }, - { 1299920470993756698L, -166510666501194299L }, - { 2315187937474071861L, 7661746883847328813L }, - { 806120923801759332L, -7371352627644098700L }, - { -8537792935927015380L, 8121135036776652016L }, - { -751623313460664870L, -1684827436846980131L }, - { 2455098182130434513L, -5117312998044745719L }, - { -3041072155357054618L, -6972979759059535816L }, - { -5209258140949481980L, -2850141282674081949L }, - { -7784651030341623624L, 8999636098565609468L }, - { -8624281235662545565L, 2802906109949156906L }, - { -5185374153462168974L, 4042442480817740884L }, - { -8728622305551122108L, 5363590029784421735L }, - { 3633316488676598179L, 4925791459461278180L }, - { 2341850275669250720L, -4459999769175253936L }, - { 8998800880957295269L, -4343678313183227809L }, - { -2791108801739767859L, 4636488046527593561L }, - { 4207716787796156879L, 4231756216975414682L }, - { -4083554261407892809L, -8262406562901842787L }, - { 2977762250156739855L, 8049673030862839736L }, - { -6066243213313847782L, -7613157457395411777L }, - { -3134677742513834402L, 5369087783798165525L }, - { -5231660756514911289L, -558789175821081719L }, - { -7916346081138370244L, -7638955099780654605L }, - { 9105509708951212631L, 8857680368853459781L }, - { -3071680532260795719L, 7548887970352736530L }, - { -3152428524199455707L, -6442114135533810709L }, - { -5276930195233923125L, 1364963280258649846L }, - { 1981446637702558747L, -7751173762713374236L }, - { -8822786060285469479L, -187974834805915694L }, - { -3086453182842996354L, 9107364158514537855L }, - { -7521798164704108718L, 2384045956629947261L }, - { -7460429880600038351L, 4800095578910651073L }, - { -5031515429775225415L, -2055654337088316962L }, - { 5662627828449328757L, 7046721834457541245L }, - { 2804157867790593789L, -1341792999416601132L }, - { -6183934836359652529L, -657594756031460913L }, - { 2425310972806241292L, 1258033866943800792L }, - { -7877162957672040682L, 7635167739849781937L }, - { -4575453773921540745L, -3355393194943055905L }, - { -6152892230011262930L, -9193001981013880312L }, - { -1554429781063399588L, 3405969670011375161L }, - { 6395550633581619922L, -7583323290006007445L }, - { 948199150697514149L, 4111589110219820951L }, - { 4123518706442132507L, -8438953137254330460L }, - { -8620024481834864148L, -6636388327463820199L }, - { -4627311960537433998L, -915962921757457254L }, - { -1517263476517287336L, 4046174639048253801L }, - { 3087156144310177979L, 391565409154016317L }, - { 802387854806242344L, 1031677631873271699L }, - { -8223164854162179626L, -443891348496457499L }, - { -8876883825341271093L, 5762028792245015141L }, - { 6189924694943538938L, -7169703049494390501L }, - { -558048344469199000L, 5981321487249463887L }, - { -6388815497071843014L, 3273238115129858121L }, - { 7970082794223216108L, 2973205891766662972L }, - { 8943146030443257086L, 5791248506749113385L }, - { 1919558538884824162L, 3150174799334525665L }, - { -5413821296846136841L, 8082825464958206177L }, - { 8482255996292420949L, -7115778512034379502L }, - { -2059351044571046226L, -4782846315945295244L }, - { 8122315934009425936L, 462528816707067945L }, - { -6002133579485340781L, -3975376714763954783L }, - { 6439465961707132723L, -756936500656028513L }, - { 2763117897158909339L, 1091745287377893475L }, - { 4241846593057682886L, 1081100136763965880L }, - { -3156374353704014890L, -3581775682588778942L }, - { 3611310604513156987L, 8348262968344472468L }, - { 2539868227324188707L, -4712857164920834878L }, - { -3160603853021599046L, -8654224927278936599L }, - { -6694565052629228305L, -971528287258097624L }, - { -2829087677596299075L, -1534581713432222723L }, - { -3855421753196086451L, -8760600350092291439L }, - { 8353874633819013271L, 5978997520871435617L }, - { -2485914493713180581L, -977211097680535312L }, - { 2924901647540244351L, 3960491378165335258L }, - { 140830235769158231L, 4133918999398648450L }, - { 8924525771772034372L, -726044173977679325L }, - { 1991645829771754924L, -2067381390897988577L }, - { -6409133430531739321L, -6175415710899927619L }, - { -2477349252564343349L, 3988670256167231709L }, - { 7592298137540200578L, -5726518256936929851L }, - { -8706120837264950112L, -5760350640517553208L }, - { 2330049856518978017L, -4092773931089397265L }, - { -1333715564956417750L, -2231452272587190724L }, - { 5321303278236129003L, -6746469835008817808L }, - { 1316603583801631000L, 1137804323520560994L }, - { -2052093890021786856L, -3783187984532267053L }, - { -2212919092132307727L, 7186765338995597614L }, - { -1138248150179747101L, -2184981677146577517L }, - { -7297574785915472699L, 5009477804126403419L }, - { 3159392081609537393L, 7309719615409023592L }, - { 5438969032594710113L, -5123802317331232347L }, - { -1117946266762888661L, 1492594410329911808L }, - { -3513962250060316650L, 4906439631063318446L }, - { -95470470775096400L, -8272067922919754322L }, - { -928547845419412355L, -11702280433339640L }, - { 3064209748165139149L, 5541367980759525384L }, - { 5570740544374382296L, 5321829123710270068L }, - { -4848606292970499536L, -96910214182218274L }, - { 1249733847255258336L, 629248191606577595L }, - { -9081876379081045111L, 5443102257014841765L }, - { -3178350430540128617L, 2432498732626009926L }, - { 4580722282117591455L, -7643528894779295786L }, - { 4910338723691444614L, 6967629769055776438L }, - { -3861107435455294057L, -9205931005525733053L }, - { 2455351552393139588L, -2953211184067244974L }, - { -3098045343671378301L, -3817179460848825357L }, - { 1276702104227748441L, 137325564846715403L }, - { -8725606894849543465L, 2905193080015222394L }, - { -7043526197674754455L, 5559996365359216967L }, - { 2543751490914779898L, -1370174742699523774L }, - { 1111188191726666289L, 5295334064948911884L }, - { 3299681536744686092L, 9040207948700213390L }, - { -4968407975804173061L, 6424222583290688109L }, - { -8443232222924958642L, -7778388515977146250L }, - { 2692856020311995538L, 2968383219838059276L }, - { -7295992543900831720L, -4457539035332779798L }, - { -835426980056055153L, -6325659580231608755L }, - { -7189216512060259212L, 2131181344124063164L }, - { 1546667140862204220L, -239160549067820612L }, - { -5157738526808785307L, 9115760354926169094L }, - { -8400112152363165211L, 5857402912101139691L }, - { -2562446629278342489L, -6148111590522678005L }, - { -3984312152746163924L, 7844800256926351421L }, - { 263973571859894620L, 594261227115607566L }, - { 5863738959863392730L, 4867956032043813886L }, - { -3750469576779228200L, 7192121623829732387L }, - { 2859093520615066384L, 913297396549536029L }, - { 239574671716835044L, 3087819404448657542L }, - { 1758244848125395099L, -9078334339121564235L }, - { 4692926060224877180L, 5116375739982667956L }, - { 2328985435627410056L, 3709473589115479198L }, - { -712944964417726519L, -6007503027678389854L }, - { 7575628018175957835L, -7383688701150280008L }, - { -6461647485226712981L, 6750569702211012204L }, - { -9175844658802936237L, 8399161365461331759L }, - { -1791894645853433273L, 7124236302180108571L }, - { -3209291319104719345L, 3052940112246927168L }, - { 8435774909159574457L, 6041127832456521507L }, - { 3068904622159492539L, 715670353716033395L }, - { 6405574310234631665L, 6291430988703679177L }, - { -7236310029621050895L, 5100784183499609393L }, - { 1939741827857698370L, -3177132287591049454L }, - { -2711876483320863546L, 1524168983814198921L }, - { -5191337944005182792L, 1387248765441775509L }, - { 851301927202074099L, -1263258347843133972L }, - { 7817558216393575797L, -5162993824073352503L }, - { -924173671401578135L, -5108957871026680251L }, - { -8870424728276452684L, -2321064657647312260L }, - { -5612135981154918473L, -3273558579175712345L }, - { 5352840780989627332L, -6783535534084823449L }, - { 3115501649750915797L, -4387292192090486464L }, - { -7282764488136203731L, 6453482773752879162L }, - { -4410122159075968274L, 4725424300607610937L }, - { -5112841868993719465L, -8779015554522488103L }, - { 1606611627835962209L, -5590171830014603568L }, - { -2564625118517656156L, 7741285374849676494L }, - { -7347999176364584697L, -3065690164342722400L }, - { -7520586016175454443L, -6390387248180888651L }, - { -3582872246453049220L, -9203340940844140689L }, - { -7208670274224679141L, 6037856226854376075L }, - { 1407185043226639926L, -8963249490810952056L }, - { 5548472899324259498L, 7197773686811339894L }, - { -3424704481698318306L, -3228267337906479612L }, - { -8898045228081312865L, 7299625475871751770L }, - { -5032961205984329240L, 1080670899373428777L }, - { 2319704565344125424L, 6271105296589611136L }, - { -1858090959206557106L, -7189583006151098162L }, - { -1847512527385111193L, 8502130611969952629L }, - { -218817722784924760L, 5246262405009713204L }, - { -4644538017574761086L, 3272921218846794606L }, - { 527762499588866419L, 866014286715394507L }, - { 7682925460546142196L, -9023754876300785684L }, - { 2618673582975102782L, -3841047495859134001L }, - { -8339358073633623035L, 6392875486843295666L }, - { 4632344075623474881L, 1582641584198542259L }, - { -2634725682046056737L, 459419838955507648L }, - { 3264353773883015103L, -1523378724173083514L }, - { 3450256920483368564L, 4975188291142344612L }, - { -8453373497678191816L, -3839576070757390241L }, - { 4324811352547234228L, 580873531256814001L }, - { 5231611966727557421L, 1244921297520573100L }, - { 3935063678731059941L, -6192996608723472660L }, - { 6338309551930394802L, -6490545382515146086L }, - { 6622686033142507173L, -8428752124385041158L }, - { -5278373537512798709L, -7666003634852458753L }, - { -9063940204441257539L, -3060099377907561092L }, - { -6333833756325058415L, -5029009158854294732L }, - { 3799491381076234981L, 4200533976809289087L }, - { 5050905817684546674L, -2743556952975018462L }, - { -796624655126841621L, 8394910217060245525L }, - { 8334872366472578300L, -4013169907403888314L }, - { -5288752267258476166L, 1615789454281352829L }, - { 4335956913966038392L, 3669603612307880087L }, - { -2247074774901543705L, 384186682932301514L }, - { 8474035569080943503L, -2072617956194576812L }, - { -3170167932314701995L, -4996126312151911632L }, - { 6999756768956410897L, -1222840955640726138L }, - { -4451078577344071588L, -4574301927676188432L }, - { -8433054951584831409L, 2019896101789516324L }, - { -2640652121643463448L, -6207648221610624100L }, - { -7045594934288710931L, 6907612079776695168L }, - { -4036935141669708886L, 8337968798845695874L }, - { -7734407512972194081L, -352014965188200686L }, - { 2053541054148333962L, -786335970157264827L }, - { -566653752431971002L, -8089305180282021945L }, - { 1898804146829115409L, 1490169990672309460L }, - { 8507984725723339263L, -4741793772956239321L }, - { -3742788731083462619L, 4530848119791548171L }, - { -614166854038590657L, 4495302806552748358L }, - { 8147682807535759575L, -186502124698730499L }, - { 2813322236228401990L, 8130069379689580810L }, - { -7697111451322995338L, 8936991586964556806L }, - { 8023578719528819358L, 846744111432227894L }, - { -1666048881205334172L, 2007039852402613406L }, - { 2861705383918865808L, 5712283346400961499L }, - { -2067264870309406817L, -8080281899293212696L }, - { 1544932780962992751L, 6732646774857284315L }, - { 5752963315823730718L, -6680909940508528513L }, - { 5563418456763501584L, -4108919598993076052L }, - { -956763705026909993L, 782815035938451649L }, - { -6723021793890249884L, 6375973421868888415L }, - { 8199491799885937348L, -2824046112291289709L }, - { 8254326245904567972L, -4939591038817699096L }, - { 696534455436688862L, 57855698877748437L }, - { -4526166123204455007L, 6259254177722304651L }, - { -1244479971115743946L, 5213539213896354419L }, - { -4712028527008594695L, -7017914521199006226L }, - { 3845317619056596538L, 7090203329717532364L }, - { 1397508695414938292L, -8490878741424764802L }, - { 5199778266100306999L, 7458354268561924417L }, - { 7649610185133409821L, 5850524304651887209L }, - { -7736979936936405855L, -1688565444532845272L }, - { -1871499676764587199L, 3567966374680431242L }, - { 4089210433244498057L, -6849207453391081019L }, - { -5319342193649020117L, 6300983384645314585L }, - { 6510328602034064204L, 674936610022286330L }, - { 1177990759783856649L, 1233238019560229835L }, - { -6211536889696831922L, 3269771882547594708L }, - { -2806444732697667079L, -8472679256324341139L }, - { -5534324430749159010L, 7385757552452744804L }, - { -6189402282341917673L, -7597189316618548656L }, - { 6327177260956086170L, 387354508794102949L }, - { -8199327532062722025L, 8781866512582180355L }, - { 1757637089703623521L, -2439557373159907653L }, - { -1083020196125888231L, 4898229079940792683L }, - { -4027554827881183115L, 5854278118107827495L }, - { 2536452110533397141L, 5053032057586689294L }, - { -5283309880767903892L, -4036089771501382471L }, - { -8726185014741079280L, 6371918861414578337L }, - { 5870565960746070417L, -1755043487049372432L }, - { -5981985584772708231L, -5464038684710305016L }, - { -1932877698882443840L, 8643536265538303114L }, - { -1002343255004640521L, -9183473069245370007L }, - { 4369245457815499473L, -7541238362330640360L }, - { 574307157338267836L, -4775059289639379617L }, - { -9022123090729501652L, -6281514868145333731L }, - { 289683520338718123L, 2796625540449362421L }, - { -5791631171477648402L, -4653014207048774900L }, - { -7088072188409060385L, -4095346481442481243L }, - { -4659987534525277948L, 1840919610151012736L }, - { -6573587402478059370L, -394799095862107646L }, - { -9147189283662432041L, 2780457115891390435L }, - { -4621406226758810332L, 4650621948282825212L }, - { 3827992897413425855L, -3470503642777527388L }, - { 8237187128340177815L, 8338050922877292449L }, - { -2575127860924571660L, 8053904449338331049L }, - { -5807831166865245102L, -4329977027836990705L }, - { -5362714198312494492L, -241660454500896017L }, - { 4800564949032048849L, -991028768001584039L }, - { 6232971559544384156L, -4931085162898819233L }, - { 5346264270546834545L, 4735211348383074864L }, - { 4418021854956695145L, -4054404223178521239L }, - { -2503709442294180811L, -2937345847603751564L }, - { -6705525727229877941L, -186811788738397153L }, - { 2807916716409994404L, 6999030087777771607L }, - { -140901784876025870L, 1998821964393989519L }, - { 8341454749980902529L, 4006910961641213665L }, - { -1877846120130857988L, 7136842530212354406L }, - { -5151008775080326365L, -1658405690903715224L }, - { 4141948371168606708L, 8905521338649282325L }, - { -2991396496641036974L, -8951844492612797162L }, - { -8231846204849830109L, -7788963254099816781L }, - { 8817247101288954387L, -6748712299598005804L }, - { 8987037987198023072L, 9070734453008799529L }, - { -3653961272252403667L, -1706174462105691367L }, - { -5540876112254432380L, 1685272653566639268L }, - { 6630760576601451124L, -1097030590189693240L }, - { 3952853764187760519L, 5155412125205404325L }, - { -2752207231177565438L, 435598937197933569L }, - { -8990910782429153994L, 8975085101947256973L }, - { 275029084438740989L, 1594853272392894824L }, - { 4377008995333363792L, -9203724735327026090L }, - { 7821963094129670639L, 6001202347774222234L }, - { 5910345261804604591L, -6530910287713746869L }, - { -4676534586425310858L, -2447999183969902895L }, - { -893427896035022872L, -9110096049863714398L }, - { -5107326322974521170L, 6912129560394449872L }, - { 5928147272454832468L, 2068430724750870080L }, - { -6838714257802993131L, 1280800236191378302L }, - { 3828181535474040080L, 5912525367873976485L }, - { 108432455104664877L, 1008792111792728167L }, - { 6134860905554719891L, 3736157740631835042L }, - { -9006906057728028416L, 2291031958410264788L }, - { -8785087250130628623L, 1747369706716307880L }, - { 5107258923997586783L, 4842462885753407158L }, - { -4184502077870950738L, -5221774457734574279L }, - { -4196994343382319067L, -4731152976876941564L }, - { -3602525630290645804L, -7438604867872016130L }, - { -721602986806918388L, 7380942477862322044L }, - { -685749048932716724L, 8558621156455130463L }, - { -2226124441764103982L, -5753212050844017972L }, - { -8444470437189672337L, 682780176504188457L }, - { 5967905323104782609L, 872456529921347237L }, - { -774529365691330376L, 2906334255950757352L }, - { 5317411683068394421L, -108367910517051649L }, - { 8753729036148149823L, -876697494682167248L }, - { -2600284926580864832L, 1079293674000123963L }, - { 1501264369203023713L, 4772271458149794627L }, - { -5589106565383836539L, -7585724482444194890L }, - { 2671769607792597675L, -8643480525195244990L }, - { -571916257780128106L, 596916564516236145L }, - { -466398102722097434L, 3470290204352195571L }, - { -8668321984643614166L, -453629747624458261L }, - { 7631202114905008803L, -4821135673180277868L }, - { -8647922451448787023L, -8485380845549008746L }, - { 8025381490498356948L, 3913777583556485172L }, - { 6049280950696679244L, -7121925732817649938L }, - { -7696482417187458362L, -8601187295544785855L }, - { 7140438358861456746L, -4279316057093339253L }, - { -4921885565559803566L, 6325512175579207375L }, - { -7027307783313071980L, -7680809212541810824L }, - { 4879598629629415952L, 8150769622291187304L }, - { -7342155744245645378L, -6215685187110669442L }, - { -2263378697656156016L, 8343706095650682031L }, - { 3707257119850556629L, -2120810639767885498L }, - { 2267112971575522392L, -826262663858867910L }, - { 4213162373130191016L, 4461280045821316392L }, - { 8934898250536865564L, 359231887739760556L }, - { -2149765792894599153L, 4707860023048648731L }, - { -5375160376931751557L, -786047454211312701L }, - { 2196544121130659101L, -867932101728609316L }, - { 1698916734136113996L, -2204779643027651944L }, - { 3433172695894846834L, 7596525181878611400L }, - { -2849259564218003615L, 6623954713336976951L }, - { 3254138956861413927L, -1133558231039979412L }, - { 1285929622626453198L, 5890024885621260165L }, - { -2349127797610817522L, 1562179804252080095L }, - { -1191286947825336074L, 2468833460111911838L }, - { -9055971338481310193L, 345979595229756636L }, - { -3525928115330914396L, -6596590613894843229L }, - { -3227633136719463166L, 5915785628644168423L }, - { -133501853014392460L, -8741758672003862228L }, - { 1099153576792978915L, -2742417900988504166L }, - { -648473507797745243L, -1129954793722235908L }, - { -8947946509829984393L, -4829402018135157767L }, - { -183277647411867477L, -288109513781082853L }, - { -8972836557830117056L, -2372987808358806473L }, - { 7599024178448012477L, -4273183649325398119L }, - { -4558685557381095142L, 8836884243173336023L }, - { 4767843848744584145L, 5190086288935651378L }, - { -1522308275842184404L, -6580417704257825326L }, - { -8584574042672861403L, 92823380696470869L }, - { -1734332735592240813L, -4860675540725285320L }, - { -5832090116698921823L, 6760714595207081195L }, - { -8717779938268738600L, 3229735988985744701L }, - { -1881355893097809021L, 1149009410476147075L }, - { 7715529933819950784L, -8766744506878170376L }, - { -2289162375063823266L, 8785343280324053248L }, - { 5628801095532857454L, -6766400014785301219L }, - { 4961594313236250573L, -7969158326987751251L }, - { 4618832900030681591L, -1590199595674682989L }, - { -2860026598356511432L, -4804664899406105836L }, - { 1961029532371905567L, -4232908783774954600L }, - { -7427116119564073711L, 7457295679793377814L }, - { -7663272674507523073L, -5262217384322722743L }, - { -1432342159197328837L, 4771708562585944643L }, - { -6656742466964663442L, -976564846383552887L }, - { 1884610673731472834L, -785174449433559508L }, - { -3810094228658892044L, 1994759940275525679L }, - { -6616291605664442115L, 3795543339876571956L }, - { -6089433736056798518L, -7266978573829534613L }, - { -7473225570871869756L, 5261130192092551093L }, - { -2962461410122376636L, -5000607733090565805L }, - { -7732736326487208707L, -3693026679333504313L }, - { -4443012182604465346L, 6100440042934878383L }, - { -6157220788020380465L, -2860438289567923884L }, - { 4600227015044805999L, 4989400139419054213L }, - { 4469639125734518912L, -6122627204883036341L }, - { -7792518910888390519L, 4129047140733643848L }, - { 1994555386333163764L, -3844189245157007278L }, - { 4369373061497876631L, 343822057089163157L }, - { -4738249058452865067L, 2329646226948660665L }, - { -5995135073617675417L, -4255461102943936723L }, - { 8575145712582277328L, 1413910585849998254L }, - { -3326852669647946366L, 2121198412256615037L }, - { -2007891227481667403L, 7221453514528963511L }, - { 7761466597038557448L, -6581310753540884344L }, - { -7224144129768088459L, -6327002969543063078L }, - { -6066361559768252258L, 1784238609618085587L }, - { -4068105427650671702L, 7479972997631999286L }, - { -5560889521429203904L, 2898253573510616692L }, - { -4762527649365520713L, 2604657580604116324L }, - { 2694767757294725688L, -621761717733876220L }, - { -98412761475871782L, 2779314879118693087L }, - { -1686751510820366009L, -5956651577100715550L }, - { -8638747288926132295L, 1038333600319247631L }, - { -3606421426295459375L, 8477836939368819043L }, - { 703911580424568845L, 7030948256080124036L }, - { 3806874684410471199L, 469379621331982300L }, - { -5118211203482914183L, -5305374868543386096L }, - { 3783835693585708905L, 6654716033399934609L }, - { -4147496567901501893L, 7586049031853109067L }, - { 4328139758484363106L, 381917650928462968L }, - { 3028068134370267202L, 776322465585926454L }, - { -5966389813687232408L, 3686423315817746584L }, - { 2195469898148267913L, -7533513970647659535L }, - { -3080166474377317430L, -8140738602141354389L }, - { 6412533502918649688L, -1703582505372665809L }, - { -4801061500654703956L, -4201543830696595479L }, - { -554194900129906123L, -5939632826608146381L }, - { 1486000469436139740L, 7831050577063499982L }, - { -6971589411333019409L, 5357835973747361473L }, - { 2647463349908157318L, 7085011541975929989L }, - { -6754094203714628854L, -3850873520054179131L }, - { 2314399046579224435L, 3216792862731027976L }, - { -6177383374280917075L, 8760408975864465377L }, - { -5619632493646738964L, 2241632268315301578L }, - { -7301831206207675015L, -1821451086573881135L }, - { -5527516975398904813L, 4968354678684490072L }, - { -7206298956882517419L, 2279041835604861410L }, - { -1535337994919517848L, -8761446866156246742L }, - { 725107219148423471L, 4750860717864763778L }, - { 1938195538047669437L, -5869782778289132135L }, - { 1028829726878266547L, 7197029508183468862L }, - { 3981352596771855719L, 4996127899543829429L }, - { 4637441575637536278L, -6389995039174519370L }, - { -567364300216533096L, 19863152138574099L }, - { 4215820779392244698L, 888457597427087114L }, - { 5791138156269639416L, 6853760322626114995L }, - { 527001488112788484L, -2110465445257708858L }, - { -4390338125863921979L, -2134580087205909557L }, - { 5557055272452535368L, 2866065276453045221L }, - { -205316410586789577L, 4480269606588918401L }, - { 6952133288635206796L, 2015037502635776574L }, - { -7457518070084443694L, 2263308604979136810L }, - { 2002018537802900078L, 7552360032993184271L }, - { 1561023860546606398L, 3866818685532368479L }, - { 3006183850758749007L, -2336461709355555028L }, - { -1361037422909233361L, -9144929386769396303L }, - { -4203933835330884180L, 4220615295609720220L }, - { 7500988945823273736L, 3572390891093078325L }, - { -3010872765453549672L, 6632197017693971191L }, - { -3781827987408697259L, -4030709294737296947L }, - { 7460277383018710734L, 3383215657257964557L }, - { 5250710645655626569L, -3007683880002548954L }, - { 1109553850343924028L, 9126342159911243074L }, - { -6498085059809326090L, -6420733693986859740L }, - { -5879222670885240061L, 442921388511227265L }, - { 6210613100795379620L, -1514159259364407425L }, - { -5759675374559290972L, -8245819781762092155L }, - { 2824738880545011656L, 3999019159821229194L }, - { 3213468672819532759L, -6840569939386909113L }, - { 514328750496380347L, 969657192227097933L }, - { 4470285007717204101L, -668030492010532480L }, - { 2269240343629252129L, -4576239629892938120L }, - { 8714859525098129755L, -2826680146207272878L }, - { -6932578361476642118L, -4666717289125206755L }, - { 3219949239213817308L, 3712651019435159979L }, - { -974585298959970878L, -1944037411135401627L }, - { 6482527911604968876L, 6263685975715881314L }, - { 889153561428168470L, -1692016738149208411L }, - { -8207616222981108363L, -491537029006685810L }, - { 2386860797138412452L, -8312622730184110241L }, - { -6749686321997906685L, 4061453222465983121L }, - { -1105424552884318985L, 4383295431011890299L }, - { -3137963539903752699L, -8004907349965180516L }, - { -5296550634024189868L, -701828900076753577L }, - { 2919221292190747486L, -3730402551719687544L }, - { -3991521756182858814L, -8245448390492788466L }, - { 3802413126716557908L, -345388522944700330L }, - { 4556158013211621930L, 4837029469954119100L }, - { -1956520472596138305L, 3774560559204626526L }, - { -1667618395239727751L, -8642889400813503572L }, - { -4948155010712448139L, -4045291183536374219L }, - { -2667546434479018044L, 370703145466617430L }, - { -5192951416537530780L, -21955828113889540L }, - { 4474564860866849514L, 827322199368359858L }, - { 6795504197096101870L, -7090967928316662587L }, - { 348555520492747776L, -3642605601802123384L }, - { -9152654684800879935L, 3609495880796821187L }, - { -139520144005307559L, -5156829220828151100L }, - { 8655115078308054377L, 6824472990762665216L }, - { 4640578432082008138L, -6202001168681068572L }, - { 8526214307008571064L, -842893985616753436L }, - { -7079091919397494753L, 8339596036464430100L }, - { -4852301075482608956L, 6187407979941379905L }, - { -6726381834527599283L, 801991602387712085L }, - { -467175742480032731L, -4596941950635352144L }, - { 5092513639393893997L, -8012169512241368869L }, - { -916781769295487406L, 4932904650409381585L }, - { -3306005301217276910L, -5501027874234474547L }, - { 5711239369216246603L, 6191254119870515104L }, - { 7411369067342514714L, -3304087475657526094L }, - { -137089609471843551L, -456007077646664136L }, - { 2197853544547148264L, 5840431983889477671L }, - { 6994895994975015585L, -7130703368147034100L }, - { -3993584670641567357L, 874766092887871964L }, - { 7324113989979846776L, 2238932798202795857L }, - { 4848201612974985071L, 4462081907647625486L }, - { -2319141888027790806L, -515485080810423104L }, - { -7727572350242351429L, -1128955356889746097L }, - { 3611228677421118756L, -8629406378387284186L }, - { 3254031939911056022L, 5981817082841287883L }, - { 1315862663037871882L, -4846048396088499736L }, - { 2762719496333050774L, 3984785182381619936L }, - { 2441476684596910583L, 4447837245869346861L }, - { -1751985778109806355L, -5449837400474558988L }, - { 3156518557955714028L, 6585800508293259358L }, - { -7474525109128332157L, 4191565513182283182L }, - { -402634945481420093L, 1145607902421986507L }, - { 3711042493776857096L, 2083850151603736019L }, - { -526618219268616930L, 8506153718458047088L }, - { -8956423818433397438L, 337802762069315243L }, - { 3318951429850234648L, 2081621265536757163L }, - { -4065748355754556535L, -7239810839294391198L }, - { -2974465318794034149L, -4594332206328367008L }, - { 9156201933336414671L, 8488676128423554222L }, - { -1224004278953882958L, 5451979806028482452L }, - { -5567810197150710613L, 6919209359995815805L }, - { 7645667176564158039L, -6364331595927960173L }, - { 7437954892140634061L, 6193769906536854642L }, - { 8595047667824297631L, 5596599227739861071L }, - { -4227841629446459104L, -1381816196560241190L }, - { -4073313779073810355L, -1100784080146793337L }, - { 764623093768368301L, -2826222786337395694L }, - { 4502563456929761688L, 1522444965027476312L }, - { 1027370723462817766L, -6744570457086361510L }, - { 7668869338814612684L, 4430603710584195978L }, - { -4780350365503382825L, -1669306996283361332L }, - { -6389061999435806787L, -6048382522434823780L }, - { -2133237830821026919L, 3019116079627478016L }, - { -618977682776693149L, -5595283007067987776L }, - { 467656057704319257L, 3340252194762699251L }, - { -6754479852919060751L, -7463769590197660662L }, - { -121796624546305099L, -3251872792366792553L }, - { -6164861615484187016L, -6122786778522267003L }, - { -8568598162483564153L, -7141238264795350159L }, - { -8182644091745100549L, -3046128695748774162L }, - { -3989631051916738549L, 2520402197254872075L }, - { -3812515520109109155L, -1052959236992591515L }, - { 5458479505950940580L, 5049901156611941154L }, - { -4068063356781230185L, -6931312104494850376L }, - { -2830766632873229698L, 4798159326705638849L }, - { -7592354330098913572L, -7738117602772322434L }, - { 5323147076973602219L, -2197090908151937767L }, - { 462800867816435413L, -8465892264165433250L }, - { 4002154584204048905L, -6343838674759451204L }, - { -803837213195276249L, -7987366341250351358L }, - { 270846859760410932L, 3184418117964900027L }, - { 339186719055655409L, -7127601895783159724L }, - { -1681073433226249949L, -5136145993285919552L }, - { -3172364168133842187L, 5692701350597281770L }, - { 4471576722877991666L, 7336578103784155071L }, - { 5796602822306813285L, -4343030338723817984L }, - { -7918394505018135767L, 945395198631021154L }, - { -8099706435104488972L, -1543491225353143256L }, - { 3225305587851029418L, 1333690785007789042L }, - { -4366886220054887809L, -3805519626113819282L }, - { 7732358946751522729L, -3514173094342856229L }, - { -228816160482375387L, 7384891550204744673L }, - { -6429545033940023762L, 1845280019375987556L }, - { -4874531170284168803L, 2520265631372728029L }, - { -7919754354938613725L, -1920613329185200100L }, - { 4818550076091948962L, 4007439941177190899L }, - { 3907701057522316102L, 8115698842586570458L }, - { -2162109673539899314L, -6362182245437049350L }, - { -6296577330837677905L, 4719157127069353305L }, - { -5038523314786213767L, 70331235006715892L }, - { -4182256071671167089L, -5164070196885436699L }, - { 2347804671767305901L, 6890490985369083991L }, - { 8781747195783722684L, -830329723931541835L }, - { 5464112250608435856L, -1927457777938790688L }, - { 270499223000052613L, 3675803965927755072L }, - { 5387476652934255975L, -6395450047775553575L }, - { -2665753069813354951L, -4080814832687079840L }, - { -6640316903187366435L, -2606831033508573171L }, - { 5182130073111288069L, 7783191129863644770L }, - { 3324630100168604545L, 9095696793714934253L }, - { 6092224834024861844L, -286084573848786709L }, - { -7314979478990434840L, -6890507861998146207L }, - { 2475323565628074124L, -4029447883164980292L }, - { 3744881942029260381L, 3299671597926388309L }, - { -4468245448047387416L, -4345821869343888643L }, - { -2514532843437356755L, -5136858393253322995L }, - { -8460931029051770120L, -766778949005394803L }, - { 6058982121000846509L, 3481461461609071838L }, - { -5771467892492359246L, -4759906717287388472L }, - { 4284427580292476574L, 6567648321559840989L }, - { -4502826197302040607L, -884928098330744829L }, - { -8909965133023702444L, -598600634803733804L }, - { -5152825667036557377L, 4060129298892129136L }, - { -9001319942906464381L, 8881985935379199325L }, - { 8783326653870239059L, -2206839120202500049L }, - { 7169538748654303504L, -3760964465816388168L }, - { -7206711339673245443L, -4408205839339337277L }, - { -959892259265562431L, 7053151831906485899L }, - { -1673323329893911437L, -4266304761003565025L }, - { -5827914418805049723L, 3887362082768648751L }, - { -820830695253715046L, 3506786828941982744L }, - { -5782181341435499931L, -513904845096444765L }, - { 2663734005752892035L, -128005322426179870L }, - { 6987511185271585413L, -7874168125153003313L }, - { 1292089443730939651L, -628053432962923666L }, - { 5587170596809636807L, -2613417850126827556L }, - { 8237809229146017083L, 8084633225427135915L }, - { -2235781308356196513L, -2827636188226841116L }, - { 5423273201690025713L, 5516220885776174723L }, - { -827014178432784464L, 6712876247104625930L }, - { 4410575469603649344L, -7034242775638553169L }, - { -4472642034035214939L, -2034015765295524502L }, - { 5360193252716249224L, 5081471891122198741L }, - { -4572235983836835323L, 7451697056844602164L }, - { -5433653902594010857L, 3434435237836646075L }, - { 4134790485921001466L, -834212517906731898L }, - { 4485288889906709425L, -1712294958510249491L }, - { 1685824402735587758L, 6343065064147664744L }, - { 6091818520229922279L, 1108625331300764354L }, - { -212523426857309616L, -4053352983179692768L }, - { 8873690209863775893L, -2171715089304193225L }, - { -8812432523459654235L, 7211091108192522268L }, - { 8103047819338531286L, 3711940572100389263L }, - { 4614534509558570387L, 5444031939093833792L }, - { 4229082172984667846L, -187259441036600327L }, - { 5484460792243331111L, 3829189205530873306L }, - { -2385763800014084246L, -6039720700812665895L }, - { 7030455160712580607L, 6382913871702743864L }, - { -4237997225503760625L, -1922458832613918767L }, - { -8124291737715145061L, -4527631494483919871L }, - { 6327782024255912635L, 2809957004087136653L }, - { -1059957986215325879L, -2420735678896220106L }, - { -4603394046555224246L, 8601361276132080486L }, - { -412280426794415941L, 3234625889254726291L }, - { -3912022758691365061L, -7583905311611097645L }, - { 8274283857906326279L, 2184666272143163901L }, - { -6679687570538459747L, -1449850152673288419L }, - { -6155809572519276859L, -1979751836203826716L }, - { -341344339192464824L, 3018394569217164771L }, - { 4137861550441588415L, -5754764276232000291L }, - { -6618940267671493988L, 1914198431867340287L }, - { -7291675023689911653L, 1607477724244498217L }, - { -7953871974818004574L, -2599486547593093280L }, - { -397153165830243551L, 6139117266404059459L }, - { 4399741193484513820L, -4274767466794993785L }, - { -7321827371527026850L, -2333449639160768202L }, - { 1338155597001139997L, -2548173382440401300L }, - { -7945100475342274903L, 8020110768851902224L }, - { 4522579580699730675L, -6875195919910217236L }, - { -1777997817650119183L, -403892898634974893L }, - { -5064101783437092203L, -1401240413820955912L }, - { 1113553310062801693L, -3995214081458919524L }, - { -5709720543205442481L, 927381695298466657L }, - { 772882345518435045L, -3147890619821539813L }, - { 8903336589907078605L, -6699858563678390112L }, - { -8789465120959251318L, -1189645965180491835L }, - { -7834044567177051539L, 1676372503530702213L }, - { 1770279151425541006L, -6398305042157421951L }, - { -4941283968572768930L, 3162695053295271273L }, - { -8127231558741248281L, 7942267134725934901L }, - { 737747628416269099L, 520551528520897480L }, - { 1574449851957266285L, 8754535681980459173L }, - { -471282776174276539L, 8242818857795592321L }, - { 6739952936193376447L, -1946621864275407187L }, - { -2424982200476312714L, 3812356397318296401L }, - { 176022186483763915L, -709740258783380911L }, - { 347356729555692814L, 4480055311182965320L }, - { 7550980861784622262L, -7976605459581456325L }, - { -6474882761637742162L, 864430267918049210L }, - { 6769254801287215843L, -2567621002890372062L }, - { -7346044586598503820L, 3212842589322747836L }, - { 1815045574884249754L, 4277372518483154396L }, - { -4240219227462571370L, 439915893382050539L }, - { -649819224919779208L, -1111682246597412639L }, - { -3697860834931443057L, 8490404538930416915L }, - { 4209607762757612835L, 3651293147183772096L }, - { 5512379227441488333L, 1047566282088978950L }, - { 2554702396243693813L, 394345515667168248L }, - { -33063197416101018L, -7242273122516823999L }, - { 6204387436027047110L, -2486013089072936897L }, - { 1121696558750946811L, -981625281791640302L }, - { -67713675745955613L, -9147432709665441552L }, - { 2900236341998750711L, -3242894057113096546L }, - { 4072627124871947361L, 2568923051531765618L }, - { 3411250942283240973L, -3794534011481282225L }, - { 3459019187218245290L, 4975406156688201052L }, - { -4931935198846519054L, 7746420830231423069L }, - { 8420402881327935528L, -9137776997333750418L }, - { -2700073972687127894L, 7440926613678198288L }, - { 4135622085465759778L, 1922177824387806658L }, - { 3115364578959809417L, -39062662364695498L }, - { 7905907040079822152L, 1652221253552164825L }, - { 3117202331600018366L, -6352534687564691907L }, - { -6912405766950946927L, 664843781442374790L }, - { -4526890208931001416L, -6736625070925799980L }, - { -8362196017109360491L, -1402801909960855613L }, - { 7990163642449120866L, 2406982952217461208L }, - { 8921333090931858791L, -4099534793476161857L }, - { -7835160532401884454L, -6581739995481489291L }, - { 2597345228860385242L, 7606102447237383994L }, - { -2019901582135813985L, -8270782380997806585L }, - { -734731610197007345L, -377734071426125465L }, - { -4478738615320414333L, -5521141880370424976L }, - { -7971363857175568029L, -6039235291455986157L }, - { -4550695664824391599L, 1387891693133629815L }, - { 7004896942426055925L, -7263582847205455039L }, - { 3243444764663891458L, -1561779634771247681L }, - { 8221182849925835178L, 284616156990708392L }, - { 8413639868002181795L, -3417011274147731084L }, - { -7599742913553767497L, 6735403778117774387L }, - { -4861871033227348667L, -3342667103008656516L }, - { 7180813616057727196L, -130573597887794775L }, - { 4110358466985293134L, 8412194900106960305L }, - { -9163301540202343656L, 7441551524528441254L }, - { 7407431836530456233L, -4965816325150483505L }, - { 7168833492994704184L, -9066751607323653514L }, - { -3225184215180636592L, 535785430806826282L }, - { 8550286352383434501L, 3641342818619034585L }, - { -4037242040051553894L, -7777861270948397331L }, - { -7019860459089371337L, 1059174507624850078L }, - { 6499568859919656194L, 3031741024498209628L }, - { -6517870390876058597L, -5171583494332061357L }, - { -8816903563531564452L, 2500915269629225596L }, - { -5488567103311833696L, -8369938414214715017L }, - { 7162975208461021799L, -3741661550798250786L }, - { 3231150263108104601L, 5489430759658693665L }, - { -6472825090155306196L, -5229190418016637501L }, - { -7112727281349161724L, 8638207742440339295L }, - { -8908480908774446053L, 1135397788772172543L }, - { -162138742916032914L, -9157670355820390217L }, - { -4934765719133081654L, 5264770544051296674L }, - { -5383597847234182085L, -8622588421575346549L }, - { -1457750799424768103L, 2900589679751304212L }, - { 2062788467226997042L, 6934402819579476339L }, - { 5195212083662151172L, -4993043678018816500L }, - { -7086725269988157115L, 5165632918103528746L }, - { 3216790230270684188L, -1498081570553112883L }, - { -6772983200597124262L, 5323428267774554312L }, - { 2139536380152189149L, -2123846892813368415L }, - { 2783400616608816134L, 2640993991844476928L }, - { -6309269121238725342L, -8968814731582872564L }, - { 8703327852945446994L, -2169317814052701370L }, - { 5986578967392046329L, 8988225347013839366L }, - { -8686234791137218952L, -1293815802100229147L }, - { 7147175926193618258L, 8961828719037336812L }, - { 2812520130705527307L, -244690421709006577L }, - { 1012516456501023939L, 5782308992605392643L }, - { 7796658848573086967L, 5954450867936080446L }, - { 2642184550087192362L, 2918994474340013448L }, - { 2521303561751617614L, 1827340240292302525L }, - { -2372355039844318123L, 3067390826707986478L }, - { -7982908463432899233L, -7688424486870428680L }, - { -4773586301827797121L, -8957053550728164265L }, - { 4040904044293393487L, 2826062411708434021L }, - { -142670900232845920L, -7897084558815522344L }, - { -10691804562559377L, -2234946696504510507L }, - { 8453630879397574208L, 5221283089826208428L }, - { 5612078661433375152L, -5827827668460398004L }, - { -3592401183831123809L, -925198903278624285L }, - { -1194636486876965628L, 1773996642463132256L }, - { 7144612844993582305L, 3804996741813028381L }, - { 5952025594559102453L, -2833062603703238128L }, - { 7768859735998504182L, 2017446387476411629L }, - { -9046596974248194873L, 3950090712041650564L }, - { -6171084369920910835L, 3290438712182319518L }, - { 1781418400960307869L, 1867158814203969428L }, - { 5081999630281512875L, -2037971351242799267L }, - { -5147831879244994539L, 7584142773325361699L }, - { -6245492622672631422L, 4218402275190977020L }, - { -8665204890652827995L, 631176852120721281L }, - { -1175718303513980672L, 3584072626690154612L }, - { 8885449897820005156L, 9136594867492618470L }, - { -328163209321586593L, -3184598578381106244L }, - { -1445525508305375763L, 5152237349583818010L }, - { -2100999238041350502L, -5528588035009373442L }, - { 7410786050561217868L, -8329610059860877786L }, - { -7914164711220348362L, -8575660962837876685L }, - { -2906200250494490361L, -5595724376864178814L }, - { -867790952312765711L, -8796607059715677925L }, - { 5887767909251264450L, -2886161295052843437L }, - { -5789450489200739242L, -8648773361803380858L }, - { 1662159886119924244L, -3498141174490735224L }, - { 5012361370472355454L, 5637973419645599298L }, - { 3429745384914079292L, -9095994212145066587L }, - { -4445208736020219814L, 1969046699177550355L }, - { -5413763295704138557L, -559955330032103584L }, - { 839374495111075513L, 6529524391959302548L }, - { -7648977736915073173L, -1003589388967555446L }, - { -3664832624688924839L, -1936172468666972698L }, - { 7158412277573249226L, -7956802618942656016L }, - { 7779305491962558566L, -4843241120730501684L }, - { 8039313349173431072L, -7999087482161649872L }, - { -4220847824862505833L, -7596054202827084588L }, - { -1939839155925934724L, -4913883888222467553L }, - { -8034010027834756500L, 2813017045387334571L }, - { 8475758752811450501L, -1613769428216243240L }, - { 1099214246266343746L, -2807494640498805644L }, - { 9186354033975902114L, -5197162245251778905L }, - { 2335697942068596836L, 8495832137497385808L }, - { 5125601667360226370L, -2587705732341378662L }, - { 6606318187238773479L, 2430230045828080098L }, - { -1182364933194642155L, 7501505225324109667L }, - { -1282696136769309305L, 3965216814875100263L }, - { 1154559731683162717L, -6044142788611156010L }, - { 2886049233756462774L, 282833821358901737L }, - { 4825677492212933300L, -3505216937575005480L }, - { -9121350732551109877L, -3988694319279921100L }, - { -877752678277742358L, 2128030531232165648L }, - { -3266764465431864389L, -1383775789144281321L }, - { -1914199636241277795L, 3172927205861865522L }, - { -4687907120417383299L, 906209675925715648L }, - { -474253911596715394L, -2676977326907041001L }, - { -7075290400477487025L, -3777175211466737205L }, - { 8134957124130148548L, 3995726904947096316L }, - { -2992238854808660187L, 7288621377035663598L }, - { 5996516183600836003L, 7996323395017882596L }, - { -371549095799671162L, -1963723397664742141L }, - { 3902975175457565825L, -2096359685759558164L }, - { 6605036583318392521L, 88737143141685448L }, - { 1891100275270423451L, -1745981040411221219L }, - { 2119245665259072674L, -8638991354136966831L }, - { -834774890825819923L, -2471622230063928436L }, - { -231771124221128734L, -6259176704025750253L }, - { 3133196876747178672L, -8434923388925317687L }, - { 7298692169226203885L, 3209300628873906858L }, - { 7126455091552696586L, 1374898972361753100L }, - { -2143648506542037333L, -1300918538344005110L }, - { 2865309216991778464L, -4741984767119458210L }, - { -582169278536046195L, -595021088316172951L }, - { 8080177625773872889L, 5605701634825149343L }, - { -2641866597771089394L, 7968669847987563730L }, - { -4210759777426999986L, -8597023424475589165L }, - { 8940623302154716559L, -5059512967836662675L }, - { 8753678355208533280L, 7535049518488467454L }, - { -6281297936039038456L, 7457909342608693553L }, - { -4466014453281785565L, 6248139512270887953L }, - { 6273362062923197148L, 3871429116281885402L }, - { 2333217083667471091L, 193753548221085829L }, - { -2134695293413683177L, -5181203095625161285L }, - { 1638282373040657672L, -6368003890771549617L }, - { 3200622258378038793L, -3326095973277466097L }, - { -8777912174432066160L, -650529619692776996L }, - { 4509402067996738269L, 4817027167761014779L }, - { -5444623700171973227L, 5528512453315198768L }, - { -4861257960719874399L, -3622276494377371155L }, - { -2931845644152220868L, 2153074555510703652L }, - { -2415035074251453041L, -1006946510571967488L }, - { -3415608992526650142L, -7840424641444647872L }, - { -1100060277548286709L, -2271450031970914418L }, - { -7950756431533405941L, 5441868159791814728L }, - { 2529778543681983619L, -8854951009938006713L }, - { -2509511542105356611L, 7853654232309547016L }, - { 25235701976844069L, 3517855992525250730L }, - { 3512243450460933893L, 3972430887397192492L }, - { 5497081699936367558L, 8383940244504833083L }, - { 8834833749235004269L, -7334675479385357802L }, - { -8786955172657476976L, 225166460691346798L }, - { -2806229680204644453L, 740198459796101590L }, - { -5310949673572257587L, -379186807769692471L }, - { 7180989110601385791L, -6432354723404698372L }, - { 4574812998786692932L, -6039313492850770833L }, - { -7191136183375597108L, 9110930278055289403L }, - { 7817612065160053901L, -8258693647460211987L }, - { 4092147258927215079L, 8293168384517520663L }, - { -916694886327147203L, -454314143918346215L }, - { -8155481011317235899L, 2292426029549420190L }, - { -6577214469178899288L, -1924115905005123142L }, - { -4704682976594284594L, -3476799468679251934L }, - { -970000750564611255L, 2791886232557467235L }, - { 6392037803435901919L, -5315497557080833696L }, - { 4653466442162924160L, -4133878190287801900L }, - { -4217569099833350175L, 4839504582831160901L }, - { -7494295064988163591L, 285188759198988857L }, - { 268071204677339466L, -7292395415962103265L }, - { -3128139626778549626L, -1174396804280713279L }, - { -8490295735340959824L, 3060015218167934818L }, - { -5162368829222403127L, -3393984135225595684L }, - { -4379157681365371219L, 6657143563587679125L }, - { -4505869932044746193L, 6319966515037375738L }, - { -7725004848904746158L, 936557326289189579L }, - { -1077347489733049759L, -1247066987861982979L }, - { 4372692724364737369L, -3256637161950359616L }, - { -6095523387109702205L, -1290870227696084252L }, - { 866555760732064401L, 8351687362397734775L }, - { -6043383891507219565L, -8719495801073949943L }, - { -5064298145687783678L, 8068427516165501654L }, - { -8284554766413268444L, -5044265653521567680L }, - { 4358509246174021158L, -8826147307297954564L }, - { -314402459279271878L, -5933542775446256478L }, - { 4534052702364464050L, 9082121576264326126L }, - { -5069975264209271430L, -2280561666567702498L }, - { 7618881160105474363L, -4794858632711295348L }, - { 4167592104901771551L, -5018298706610926606L }, - { 2277499839812963141L, 4242448307766779616L }, - { -5797737740917833733L, 264493678146677010L }, - { 5386843611229288306L, -819526727917515385L }, - { 322032948055534721L, 1736760202411262747L }, - { 8623908495470433985L, 5436650610054812536L }, - { 1464656873108399270L, -5202587803213018241L }, - { -143110847782655873L, -8510401654127848035L }, - { -3683505493125515417L, -8668734897929026338L }, - { 5263884653798534228L, -1131791277133219585L }, - { -5596816932431872850L, -7650966445894865682L }, - { 449263668055475580L, 5943833600560494318L }, - { -8209880385374160761L, 5433449067757110313L }, - { -6160876842633556933L, 2106036607754168591L }, - { -2822510119276015598L, -1169309301398832317L }, - { -1867833971803598158L, -5215126721010895403L }, - { -2743011208375680513L, -1334137156024540894L }, - { -562758870972224424L, -8858736479960857044L }, - { 5241707884356795802L, -404549239240361305L }, - { 3044382044884310303L, -2578848030062168952L }, - { 4240643424518839454L, 2009743695925300205L }, - { -7202731734581844883L, 3560548372442035725L }, - { -8098501199143125283L, 270444074204918235L }, - { -2550459180607677020L, 9122097925106566372L }, - { -1776717083783659251L, -5066722509244044276L }, - { -2343369089757631624L, -8570356075106548461L }, - { -6293279254462751659L, -3762530309367743723L }, - { -9100627021059872276L, 3178453993421526858L }, - { -1298100985130924363L, 1942143010909260088L }, - { 3390116780901102550L, -334576415657279307L }, - { -4663999614093100429L, 770277787515502772L }, - { 6916372370306791572L, 7435605989219979813L }, - { 1488349423055656442L, 2113647012381226787L }, - { 6773020852755024150L, -852366200604922241L }, - { -7005014351468554871L, 7485133827588013786L }, - { -4753926923183579314L, -2312386844690556698L }, - { 5415870192658316069L, 463479081020224407L }, - { -2670881940811475410L, 3507169512028760304L }, - { -7225213211793183097L, 3981958135443174761L }, - { -5703028807893997804L, 1264194096693403893L }, - { 6561444537664669662L, -1954354266407705042L }, - { 8939981796276591301L, -4733058470244221471L }, - { 6017910964940092953L, 124625799714735872L }, - { 4500890776998912544L, -470688000960484088L }, - { -1835018042586347444L, 7653403345510987769L }, - { -4191687948466793374L, 7139837548565246758L }, - { 4106435482907441086L, -2126413898085076347L }, - { -6130167349217050086L, -3959969099349735016L }, - { 620129892796426300L, -62209784009239054L }, - { -6144158488464216798L, -8173934466594508364L }, - { -625006850515938527L, -5809518885326364398L }, - { -6682172611475406987L, -1714940790350536113L }, - { 1220842624016183584L, 8269949841236476393L }, - { -7098540157067814615L, 3531738600537340144L }, - { -4378743347226734130L, -7327441054828053137L }, - { -6508042393772984279L, -1840909133921621497L }, - { 5289282493574993598L, -6455879780378370298L }, - { -6781000719696595982L, 5177178370843840548L }, - { 3322666381578332368L, 3134586237016402769L }, - { -8173363279507413324L, -6524402652348374595L }, - { -3603049973704190207L, -8475965567552946377L }, - { -4316988796658196446L, 8866378184082028533L }, - { 914989291445423876L, 272931860159225473L }, - { -305370752767861151L, -7996913970986439765L }, - { -6987550192802158001L, 3191979351473290494L }, - { -942676483343861967L, -2153209479961610339L }, - { 539036846465448158L, -5955756213951094362L }, - { 1605373100913987077L, 8903900718100188013L }, - { 7713068526230669637L, 5191047107663767366L }, - { 7241900405827926293L, 3287960505839783884L }, - { 186408038263119881L, -725098263159168344L }, - { -2429472274603752977L, 5905214161924496910L }, - { -5720789098334319209L, -8856816197357357489L }, - { -6674769505767916301L, -2005822193174095488L }, - { -581393540490176967L, 2751755671060133347L }, - { 3124744789645879825L, -4243941635080647386L }, - { -5602915602343937931L, 4501087988245599909L }, - { 3263507419526132695L, 3560352323108238394L }, - { 6937077332985554718L, 8731941696760140572L }, - { -7919624999578199393L, -2867710728097054893L }, - { 6556190618267765484L, -8112004817108418177L }, - { 5682381095734864238L, 589618283089403862L }, - { 7614251273120089370L, 5724958541163307665L }, - { 3395157685499349978L, 3613526290468317309L }, - { -6398328093992251036L, 7596033768669695677L }, - { -2651093395236575804L, -8014022518016193809L }, - { -2097470820892650054L, 4842033680917117547L }, - { -7267148748500151232L, 4770828425873813766L }, - { 5507274834982481157L, 5091231856170754714L }, - { -2194323672581532616L, -9144268390755820585L }, - { 2269493654210886217L, -5259401698591517179L }, - { -4216275761811372636L, 5086789201000199700L }, - { 7228709978053803804L, 583987105370029162L }, - { 1544682503099095700L, -3570389176034465400L }, - { -8135200911288478327L, -2626445514253500075L }, - { 7339704802803690870L, -306444582707945130L }, - { -9063598666954112733L, -2616502440081045224L }, - { 4249185982522288588L, -1295355602551546303L }, - { -4695745996091883154L, 6444320363226433806L }, - { 2627137268581003083L, 3621089752612839029L }, - { -2578238879441406084L, 1208907918137575489L }, - { 2429552460105156204L, 8195465270198839978L }, - { -5016405662860787559L, 7224902700860526388L }, - { 1213685060600888916L, 4648386381705116369L }, - { 5207480625629771054L, -2798226710980115801L }, + {6918025063187695999L, -7374073936536430376L}, + {-4302098779834749733L, -6427377105285148822L}, + {-2998166160713018281L, 7659024777716224941L}, + {6864218090047839419L, -2038618426559555633L}, + {-6480366142596956747L, -1481473859315439130L}, + {-3953929349995588965L, -7767492055996579519L}, + {-6434184480940321117L, 6079588180421601534L}, + {-2616020178111209730L, 7047615666104579453L}, + {-3470854323700000575L, -2169535271171686428L}, + {-8036337532808841402L, 1641396966678784974L}, + {-1838610295139896408L, -4786474928096720073L}, + {9036419607108199075L, -6004001502991493996L}, + {8611141083647120330L, 4105350226480938181L}, + {-4793706706242476352L, -5867379820156476408L}, + {6185226889748380721L, 6886539015187124138L}, + {6731536092874631L, 3466258189393024666L}, + {-8923861991986181406L, 8256512301565609954L}, + {-4580685021937757673L, 7519819888072656255L}, + {-2043568341533119453L, -8660816345503928947L}, + {-4288028997403044897L, 8510040706351439064L}, + {-3641643329425012519L, 2411460379579264364L}, + {-6817119268007077771L, -8484709459460756717L}, + {-8321648494418841644L, 1039740944917575917L}, + {3538050101539897582L, 2362743675522042414L}, + {5258435933086838188L, -4848199824445801375L}, + {-6362280687837106391L, -6773951973449392900L}, + {4361114911410139889L, 7972785452136460766L}, + {-1076301070271465131L, 8384558886439123465L}, + {-4260306398241836702L, -4749396038389899603L}, + {7705536077211324767L, 7065275513754572192L}, + {8848360094546279194L, 4251126870462033189L}, + {-5382395732421186272L, 5680046751876868219L}, + {5007322629095085719L, 2731373470772162258L}, + {-2266009261689938298L, 150690519598499383L}, + {5654476833875738032L, -2061690640343340129L}, + {-1954811291194740257L, -5419036513975901981L}, + {-6890789870811920961L, 2325998689782383239L}, + {524837945339210726L, -3715887750118223357L}, + {-1133972665109461700L, 8834173286146294154L}, + {-4865757570688729898L, -6727182884028692069L}, + {-5911952424608985308L, -6049127781180242975L}, + {-6304772494633596832L, 4470293576424874190L}, + {2836199333566295238L, 8864173708278309166L}, + {3102360108557900747L, -3733512248908528829L}, + {5510180088237800518L, 4123807595437003297L}, + {-8414952918150047989L, 4522684623950545953L}, + {5518787400664681885L, 2205797938276248879L}, + {-4455668116525212265L, 1731227964152171874L}, + {-669789427027077066L, -2931659152274064678L}, + {-5683078161783893371L, -3845762003302041006L}, + {6680667259477693981L, 6292675962771587338L}, + {-4632250858732682011L, 6003962969507266903L}, + {4901952080618105871L, -4810616663349653181L}, + {-4868621977036224471L, -613718830978964302L}, + {-8549747210893534701L, -7652856120690185923L}, + {5559482992819465126L, -2935778481022073662L}, + {5338789689922860629L, -7042626160273499760L}, + {1932600112628823928L, 6801794573522504318L}, + {416099586592393932L, 6439908650131601962L}, + {7024137889223187025L, -2290925491907122061L}, + {1045082728260193951L, 6309788576958218843L}, + {6002976951327322033L, 2207846278132305118L}, + {-8528919693413636608L, 2135399881265353259L}, + {216915620139749202L, -4932202155253948654L}, + {-8015959707258401164L, -7174775121992399387L}, + {1940599133729319055L, -1446235614858172175L}, + {2459358417139019246L, -8654965189671283179L}, + {-7818955503663384729L, -3934147459468506343L}, + {1042851174159079970L, -1979910437861944855L}, + {-7917252407765639829L, -4633245311428649467L}, + {-7720303362404590874L, -6295287635440345944L}, + {-4157762089433661655L, 6496007637698701064L}, + {7715936428342659469L, -1469964384035074732L}, + {4195235191127312039L, 899631082723122736L}, + {5215159923805118598L, -6545879335313020661L}, + {7616735844785551706L, -7041352949020998262L}, + {-8947005412578780411L, -8900196105579670687L}, + {2608419102060352937L, 2291692068482575428L}, + {2932246401534482789L, -808561230173772212L}, + {-5972416795070818118L, -6748248077446108801L}, + {-5022910438308829379L, 9072885020094111509L}, + {-1910630276390364207L, -9174830524950881316L}, + {8023252197284180464L, 8037539466518319583L}, + {3380163176409638595L, -4855957689303967113L}, + {9039213805856064871L, 1650794118333894986L}, + {-2271629174168076410L, 1347251894944291291L}, + {-4820143586371341417L, -3594063807503715367L}, + {-4959944807440428194L, 5383365720172155085L}, + {7003928884444229348L, 676120417416765368L}, + {859489746443979827L, -7833483946396960669L}, + {9102710007397480162L, -8584324320197179283L}, + {-4175348964434949086L, 5647267223701886330L}, + {-8008637466668367969L, -6055429896007822421L}, + {108482635692190168L, 2968129854880531728L}, + {-9011339488466116365L, 8434635880912750808L}, + {-4004467558640862965L, -2442649750845279594L}, + {7949886151835604363L, -4218369913800524038L}, + {6571460655316068733L, -7275245798374398558L}, + {3933351809358110799L, -6947442526623576080L}, + {7530035428683392997L, 2445755963621946807L}, + {3004476708737695774L, -2695985919888627981L}, + {-6839738311238403945L, -5007277885229986319L}, + {-2115438695015824267L, 8793986460873025460L}, + {-6122328203320968341L, -1039312793807793706L}, + {-5548421559246888919L, -5432599954223186038L}, + {3128331988620583536L, 9069025730792010839L}, + {-8643493112127109679L, 1331229929640790962L}, + {8814314992955228960L, 3847902944293450150L}, + {-4787601413732006112L, 8900584343805263383L}, + {-7388222168387984808L, -9082309407529645857L}, + {131518593310830564L, 2590646000392089354L}, + {-6324750245753466159L, -2802698424622117505L}, + {-8649508569357882764L, -354092374739121335L}, + {-5132193229074755277L, 5349864399629044838L}, + {-1406233318133878829L, -7778322178019776638L}, + {-1351642603059584651L, 5905272679963588442L}, + {4703467631404861482L, -1412638527591654637L}, + {-143562322856237972L, 246782552965118392L}, + {4729655314786007157L, -6812953036143724656L}, + {1143435340240345532L, -671788510726657486L}, + {4142673406702890802L, -5618565448224292259L}, + {-386385592979460209L, -3300708192346055254L}, + {-968019894004968401L, -8047458695647085054L}, + {7431201141513763234L, -1398860770070745887L}, + {-8435079361655022794L, -7645011917469248859L}, + {4882503199526148408L, 4410126282669136718L}, + {5872988456826904838L, 773528843558202110L}, + {435774107218292665L, -3049543393726570481L}, + {374390355263912769L, 1475262870450658412L}, + {-4886205263344788933L, -2495428859633732274L}, + {4523286614199751311L, 7841582144919037703L}, + {6199714818303858941L, 7901445636911613076L}, + {4303994841625385970L, 2937718694375539717L}, + {814757341681862090L, -6478582819189379036L}, + {-5700445004887010774L, -8455858509054528766L}, + {-407790974857570816L, -8859596179726191766L}, + {-5805754751830269767L, -152275305346719872L}, + {1598196252757994963L, -3928731748771019828L}, + {-6934713071114934765L, 3826064854799786237L}, + {2185603020959026426L, 4940136396487362160L}, + {-2709341181476883011L, -3919124922665860644L}, + {-3382770288363519601L, 6073097037575507405L}, + {2971838200308166371L, -7934498192931647428L}, + {-6368589310665521963L, 6154526145046318539L}, + {6353042450513427021L, 2744250502633008273L}, + {-2886123871504743256L, -208572599238022818L}, + {-1624168552941053619L, -3913047860997752862L}, + {7320019149991831488L, -6407203038559925672L}, + {-7826562494167066071L, 3656950149331658711L}, + {3032358658826888909L, 8478297990310817113L}, + {6635552159941043305L, 2369935842067964507L}, + {-7730726826982994831L, 2814934766308141432L}, + {-3283541548043086026L, -5626755390737090180L}, + {4756392346740163255L, -1618854092540178479L}, + {-954514304963761905L, 1120375285910469551L}, + {-2677127018316745041L, 4533997389224788953L}, + {-6498470148726531477L, 4211221291483652077L}, + {3703731056182724504L, -1291375588013924342L}, + {8390865458275667313L, -111721904773166244L}, + {-5861077228742736805L, -2070386036672698890L}, + {-4143367647396165132L, 5662645194542529413L}, + {3940052427164582775L, -8034322082658011232L}, + {7449120853716556570L, 5233008944754805539L}, + {4707315860283250027L, -2735344620674927100L}, + {-6483773415321497379L, -8801767122342998918L}, + {372467878783610102L, -6728271425602167056L}, + {421540060564964849L, 6814719141747896598L}, + {-2932751110479442880L, 2620333485388819159L}, + {8138296947263184633L, 3186892836605521521L}, + {-8443166457721319544L, -295561944926731323L}, + {-3484858775294549484L, 999377954767431452L}, + {-3825165428097955770L, -5266530330876878010L}, + {-6113875314365935219L, -8700518321068076907L}, + {-5236044337855094887L, 4166279963844450417L}, + {-7689418202059025630L, 2745081882899556912L}, + {-5994295218119667616L, -7200741691189504631L}, + {-1019731893393738021L, 42985972231797947L}, + {7964057313498750371L, 8468135790260799298L}, + {4350973314535291960L, -96363394771300893L}, + {3374846342506204851L, 8183621324647001307L}, + {-147780277660396961L, -2020465953003062925L}, + {8087892087579153542L, 2081576827994983699L}, + {3656634502747737496L, -9188914506833434747L}, + {4352397869817031502L, 3608087870457978178L}, + {-5463203683033862729L, 4794961360367615558L}, + {-5829826499110216168L, -2966406905602723212L}, + {-6224968695182446745L, -5757313901190477182L}, + {-162412897360955265L, 4602851342136911659L}, + {-313093481501038119L, 726082021515462476L}, + {-2394654531394959372L, 6077061020288043189L}, + {7129356685384777594L, -242956320069229460L}, + {-5610165828587809576L, -528970810714251548L}, + {364583333953451656L, 1209647354565391723L}, + {7770189435264039886L, 4432114537846063450L}, + {-5378637197958159683L, -3569583594959549373L}, + {-4245901361761642000L, -4908415462875986721L}, + {-4163321130952495919L, -8783734595860148591L}, + {-8760784759435664042L, -4001594145043032047L}, + {3811531583056254939L, 7138061436855517595L}, + {8328872328718915031L, -4681101102915066754L}, + {-2479256131109004811L, -3818044021289010674L}, + {-2564801102635362682L, -7621503644046974425L}, + {-2549390396843178245L, -1355036253044087129L}, + {-8447951661202617313L, 7367005715843213070L}, + {-7223721101136301216L, 5932237518320039024L}, + {-4579553338717938002L, -1415752620502773376L}, + {4739886663385123868L, 6842423570713214542L}, + {8761999406836444027L, 5431773349801366084L}, + {6275926421168556271L, -6741136388070930457L}, + {-5553742881209813652L, -7463405596637494313L}, + {-5466140015739861861L, 7090908124796334951L}, + {5086336981243921643L, 620608991523776456L}, + {-8583190303195622879L, -2528844698405021565L}, + {8136795285908184024L, 7834757658823892326L}, + {-6251123780956813536L, -2362184439993799450L}, + {-7029587377954900822L, -457385112617225992L}, + {3992372666585781254L, -3425505215948273419L}, + {-8934415453060377171L, 2889516969299688088L}, + {2171086741014253062L, 8747101652358416539L}, + {-8138586755841972043L, -5230807087849230444L}, + {1593528759643563657L, 25684661437075760L}, + {-313864667208179242L, -3034251152967214837L}, + {-3266427946201164069L, -7205525509099849070L}, + {1393676534450976148L, 1600133987975139142L}, + {-5699612540743270476L, 2411808686028794220L}, + {3643737955198081018L, 3624719045997588137L}, + {179868577584127337L, -2425054572247905446L}, + {-1202636047919483341L, 1008426614634206792L}, + {76328973038141475L, -6532258192268933884L}, + {7815448976579876396L, -5793434878495490438L}, + {-2551332906614530185L, 4894172006704360878L}, + {7897839487727186038L, -115287274417874605L}, + {6782385125028425703L, -3521765042231025350L}, + {2366096266549575004L, 1600704175490725006L}, + {2646330593616093333L, -9112186430548909433L}, + {-5734352638286816291L, -7935930112754314515L}, + {205990945300406766L, 6482328665055844390L}, + {-4107074334265298499L, -3655747932822203685L}, + {3070291460260888908L, 8334448736154584008L}, + {-134765739369511623L, -7474942726871719713L}, + {-3950948930639643722L, 7328973455013265639L}, + {209643423615708418L, 2135211318988808865L}, + {-2464819451665246158L, 1595264701587118086L}, + {-8631718977760664612L, -4814735239273499159L}, + {-4893221336143393409L, 4608470873153960630L}, + {2390264798730683615L, -2505079969232422515L}, + {-8300749389255144164L, -4091945713696362506L}, + {-3549775289570958064L, 4711670840533830052L}, + {6514441262456966668L, 1033420383904761807L}, + {-7301663820335638615L, 1786260203217802269L}, + {4181559756778549411L, 1887690114220705884L}, + {6215253578855337690L, 5107740194043393909L}, + {-7323335092456459405L, -7054773565482904481L}, + {-1860577032441476467L, 3268456599417932306L}, + {3644299936077808538L, 6853477546599029409L}, + {-5161174126835724701L, 6418903298992325081L}, + {-7779787747613135503L, -1010872026945774909L}, + {-3446338450597548406L, -172855764288287246L}, + {-2662609220502962318L, -8015039012110903940L}, + {208946340318274486L, 2793507753767981995L}, + {922869894074454969L, 4440830233961398693L}, + {-8428909140908329623L, 2106468816516885040L}, + {-6875524699939418906L, 3742616954716811326L}, + {5154230294972327697L, 6150997880677494555L}, + {-5868880138852165350L, 7468379017433552164L}, + {-2697155020815738737L, 4313139001296146702L}, + {6278899766774254324L, 1368605690955846609L}, + {-6124877505863871039L, 1078518665221359628L}, + {6113186870348198684L, 4141878510658134343L}, + {1328797232741421065L, -3543059961120850079L}, + {8936960355443139766L, -6946112468654970433L}, + {9069883653377839816L, 5148075934725699275L}, + {-6698244186639407697L, -9162869098327881138L}, + {6633988379507542818L, 5549765864648998779L}, + {4243888593320380368L, 2997246184917475828L}, + {1299920470993756698L, -166510666501194299L}, + {2315187937474071861L, 7661746883847328813L}, + {806120923801759332L, -7371352627644098700L}, + {-8537792935927015380L, 8121135036776652016L}, + {-751623313460664870L, -1684827436846980131L}, + {2455098182130434513L, -5117312998044745719L}, + {-3041072155357054618L, -6972979759059535816L}, + {-5209258140949481980L, -2850141282674081949L}, + {-7784651030341623624L, 8999636098565609468L}, + {-8624281235662545565L, 2802906109949156906L}, + {-5185374153462168974L, 4042442480817740884L}, + {-8728622305551122108L, 5363590029784421735L}, + {3633316488676598179L, 4925791459461278180L}, + {2341850275669250720L, -4459999769175253936L}, + {8998800880957295269L, -4343678313183227809L}, + {-2791108801739767859L, 4636488046527593561L}, + {4207716787796156879L, 4231756216975414682L}, + {-4083554261407892809L, -8262406562901842787L}, + {2977762250156739855L, 8049673030862839736L}, + {-6066243213313847782L, -7613157457395411777L}, + {-3134677742513834402L, 5369087783798165525L}, + {-5231660756514911289L, -558789175821081719L}, + {-7916346081138370244L, -7638955099780654605L}, + {9105509708951212631L, 8857680368853459781L}, + {-3071680532260795719L, 7548887970352736530L}, + {-3152428524199455707L, -6442114135533810709L}, + {-5276930195233923125L, 1364963280258649846L}, + {1981446637702558747L, -7751173762713374236L}, + {-8822786060285469479L, -187974834805915694L}, + {-3086453182842996354L, 9107364158514537855L}, + {-7521798164704108718L, 2384045956629947261L}, + {-7460429880600038351L, 4800095578910651073L}, + {-5031515429775225415L, -2055654337088316962L}, + {5662627828449328757L, 7046721834457541245L}, + {2804157867790593789L, -1341792999416601132L}, + {-6183934836359652529L, -657594756031460913L}, + {2425310972806241292L, 1258033866943800792L}, + {-7877162957672040682L, 7635167739849781937L}, + {-4575453773921540745L, -3355393194943055905L}, + {-6152892230011262930L, -9193001981013880312L}, + {-1554429781063399588L, 3405969670011375161L}, + {6395550633581619922L, -7583323290006007445L}, + {948199150697514149L, 4111589110219820951L}, + {4123518706442132507L, -8438953137254330460L}, + {-8620024481834864148L, -6636388327463820199L}, + {-4627311960537433998L, -915962921757457254L}, + {-1517263476517287336L, 4046174639048253801L}, + {3087156144310177979L, 391565409154016317L}, + {802387854806242344L, 1031677631873271699L}, + {-8223164854162179626L, -443891348496457499L}, + {-8876883825341271093L, 5762028792245015141L}, + {6189924694943538938L, -7169703049494390501L}, + {-558048344469199000L, 5981321487249463887L}, + {-6388815497071843014L, 3273238115129858121L}, + {7970082794223216108L, 2973205891766662972L}, + {8943146030443257086L, 5791248506749113385L}, + {1919558538884824162L, 3150174799334525665L}, + {-5413821296846136841L, 8082825464958206177L}, + {8482255996292420949L, -7115778512034379502L}, + {-2059351044571046226L, -4782846315945295244L}, + {8122315934009425936L, 462528816707067945L}, + {-6002133579485340781L, -3975376714763954783L}, + {6439465961707132723L, -756936500656028513L}, + {2763117897158909339L, 1091745287377893475L}, + {4241846593057682886L, 1081100136763965880L}, + {-3156374353704014890L, -3581775682588778942L}, + {3611310604513156987L, 8348262968344472468L}, + {2539868227324188707L, -4712857164920834878L}, + {-3160603853021599046L, -8654224927278936599L}, + {-6694565052629228305L, -971528287258097624L}, + {-2829087677596299075L, -1534581713432222723L}, + {-3855421753196086451L, -8760600350092291439L}, + {8353874633819013271L, 5978997520871435617L}, + {-2485914493713180581L, -977211097680535312L}, + {2924901647540244351L, 3960491378165335258L}, + {140830235769158231L, 4133918999398648450L}, + {8924525771772034372L, -726044173977679325L}, + {1991645829771754924L, -2067381390897988577L}, + {-6409133430531739321L, -6175415710899927619L}, + {-2477349252564343349L, 3988670256167231709L}, + {7592298137540200578L, -5726518256936929851L}, + {-8706120837264950112L, -5760350640517553208L}, + {2330049856518978017L, -4092773931089397265L}, + {-1333715564956417750L, -2231452272587190724L}, + {5321303278236129003L, -6746469835008817808L}, + {1316603583801631000L, 1137804323520560994L}, + {-2052093890021786856L, -3783187984532267053L}, + {-2212919092132307727L, 7186765338995597614L}, + {-1138248150179747101L, -2184981677146577517L}, + {-7297574785915472699L, 5009477804126403419L}, + {3159392081609537393L, 7309719615409023592L}, + {5438969032594710113L, -5123802317331232347L}, + {-1117946266762888661L, 1492594410329911808L}, + {-3513962250060316650L, 4906439631063318446L}, + {-95470470775096400L, -8272067922919754322L}, + {-928547845419412355L, -11702280433339640L}, + {3064209748165139149L, 5541367980759525384L}, + {5570740544374382296L, 5321829123710270068L}, + {-4848606292970499536L, -96910214182218274L}, + {1249733847255258336L, 629248191606577595L}, + {-9081876379081045111L, 5443102257014841765L}, + {-3178350430540128617L, 2432498732626009926L}, + {4580722282117591455L, -7643528894779295786L}, + {4910338723691444614L, 6967629769055776438L}, + {-3861107435455294057L, -9205931005525733053L}, + {2455351552393139588L, -2953211184067244974L}, + {-3098045343671378301L, -3817179460848825357L}, + {1276702104227748441L, 137325564846715403L}, + {-8725606894849543465L, 2905193080015222394L}, + {-7043526197674754455L, 5559996365359216967L}, + {2543751490914779898L, -1370174742699523774L}, + {1111188191726666289L, 5295334064948911884L}, + {3299681536744686092L, 9040207948700213390L}, + {-4968407975804173061L, 6424222583290688109L}, + {-8443232222924958642L, -7778388515977146250L}, + {2692856020311995538L, 2968383219838059276L}, + {-7295992543900831720L, -4457539035332779798L}, + {-835426980056055153L, -6325659580231608755L}, + {-7189216512060259212L, 2131181344124063164L}, + {1546667140862204220L, -239160549067820612L}, + {-5157738526808785307L, 9115760354926169094L}, + {-8400112152363165211L, 5857402912101139691L}, + {-2562446629278342489L, -6148111590522678005L}, + {-3984312152746163924L, 7844800256926351421L}, + {263973571859894620L, 594261227115607566L}, + {5863738959863392730L, 4867956032043813886L}, + {-3750469576779228200L, 7192121623829732387L}, + {2859093520615066384L, 913297396549536029L}, + {239574671716835044L, 3087819404448657542L}, + {1758244848125395099L, -9078334339121564235L}, + {4692926060224877180L, 5116375739982667956L}, + {2328985435627410056L, 3709473589115479198L}, + {-712944964417726519L, -6007503027678389854L}, + {7575628018175957835L, -7383688701150280008L}, + {-6461647485226712981L, 6750569702211012204L}, + {-9175844658802936237L, 8399161365461331759L}, + {-1791894645853433273L, 7124236302180108571L}, + {-3209291319104719345L, 3052940112246927168L}, + {8435774909159574457L, 6041127832456521507L}, + {3068904622159492539L, 715670353716033395L}, + {6405574310234631665L, 6291430988703679177L}, + {-7236310029621050895L, 5100784183499609393L}, + {1939741827857698370L, -3177132287591049454L}, + {-2711876483320863546L, 1524168983814198921L}, + {-5191337944005182792L, 1387248765441775509L}, + {851301927202074099L, -1263258347843133972L}, + {7817558216393575797L, -5162993824073352503L}, + {-924173671401578135L, -5108957871026680251L}, + {-8870424728276452684L, -2321064657647312260L}, + {-5612135981154918473L, -3273558579175712345L}, + {5352840780989627332L, -6783535534084823449L}, + {3115501649750915797L, -4387292192090486464L}, + {-7282764488136203731L, 6453482773752879162L}, + {-4410122159075968274L, 4725424300607610937L}, + {-5112841868993719465L, -8779015554522488103L}, + {1606611627835962209L, -5590171830014603568L}, + {-2564625118517656156L, 7741285374849676494L}, + {-7347999176364584697L, -3065690164342722400L}, + {-7520586016175454443L, -6390387248180888651L}, + {-3582872246453049220L, -9203340940844140689L}, + {-7208670274224679141L, 6037856226854376075L}, + {1407185043226639926L, -8963249490810952056L}, + {5548472899324259498L, 7197773686811339894L}, + {-3424704481698318306L, -3228267337906479612L}, + {-8898045228081312865L, 7299625475871751770L}, + {-5032961205984329240L, 1080670899373428777L}, + {2319704565344125424L, 6271105296589611136L}, + {-1858090959206557106L, -7189583006151098162L}, + {-1847512527385111193L, 8502130611969952629L}, + {-218817722784924760L, 5246262405009713204L}, + {-4644538017574761086L, 3272921218846794606L}, + {527762499588866419L, 866014286715394507L}, + {7682925460546142196L, -9023754876300785684L}, + {2618673582975102782L, -3841047495859134001L}, + {-8339358073633623035L, 6392875486843295666L}, + {4632344075623474881L, 1582641584198542259L}, + {-2634725682046056737L, 459419838955507648L}, + {3264353773883015103L, -1523378724173083514L}, + {3450256920483368564L, 4975188291142344612L}, + {-8453373497678191816L, -3839576070757390241L}, + {4324811352547234228L, 580873531256814001L}, + {5231611966727557421L, 1244921297520573100L}, + {3935063678731059941L, -6192996608723472660L}, + {6338309551930394802L, -6490545382515146086L}, + {6622686033142507173L, -8428752124385041158L}, + {-5278373537512798709L, -7666003634852458753L}, + {-9063940204441257539L, -3060099377907561092L}, + {-6333833756325058415L, -5029009158854294732L}, + {3799491381076234981L, 4200533976809289087L}, + {5050905817684546674L, -2743556952975018462L}, + {-796624655126841621L, 8394910217060245525L}, + {8334872366472578300L, -4013169907403888314L}, + {-5288752267258476166L, 1615789454281352829L}, + {4335956913966038392L, 3669603612307880087L}, + {-2247074774901543705L, 384186682932301514L}, + {8474035569080943503L, -2072617956194576812L}, + {-3170167932314701995L, -4996126312151911632L}, + {6999756768956410897L, -1222840955640726138L}, + {-4451078577344071588L, -4574301927676188432L}, + {-8433054951584831409L, 2019896101789516324L}, + {-2640652121643463448L, -6207648221610624100L}, + {-7045594934288710931L, 6907612079776695168L}, + {-4036935141669708886L, 8337968798845695874L}, + {-7734407512972194081L, -352014965188200686L}, + {2053541054148333962L, -786335970157264827L}, + {-566653752431971002L, -8089305180282021945L}, + {1898804146829115409L, 1490169990672309460L}, + {8507984725723339263L, -4741793772956239321L}, + {-3742788731083462619L, 4530848119791548171L}, + {-614166854038590657L, 4495302806552748358L}, + {8147682807535759575L, -186502124698730499L}, + {2813322236228401990L, 8130069379689580810L}, + {-7697111451322995338L, 8936991586964556806L}, + {8023578719528819358L, 846744111432227894L}, + {-1666048881205334172L, 2007039852402613406L}, + {2861705383918865808L, 5712283346400961499L}, + {-2067264870309406817L, -8080281899293212696L}, + {1544932780962992751L, 6732646774857284315L}, + {5752963315823730718L, -6680909940508528513L}, + {5563418456763501584L, -4108919598993076052L}, + {-956763705026909993L, 782815035938451649L}, + {-6723021793890249884L, 6375973421868888415L}, + {8199491799885937348L, -2824046112291289709L}, + {8254326245904567972L, -4939591038817699096L}, + {696534455436688862L, 57855698877748437L}, + {-4526166123204455007L, 6259254177722304651L}, + {-1244479971115743946L, 5213539213896354419L}, + {-4712028527008594695L, -7017914521199006226L}, + {3845317619056596538L, 7090203329717532364L}, + {1397508695414938292L, -8490878741424764802L}, + {5199778266100306999L, 7458354268561924417L}, + {7649610185133409821L, 5850524304651887209L}, + {-7736979936936405855L, -1688565444532845272L}, + {-1871499676764587199L, 3567966374680431242L}, + {4089210433244498057L, -6849207453391081019L}, + {-5319342193649020117L, 6300983384645314585L}, + {6510328602034064204L, 674936610022286330L}, + {1177990759783856649L, 1233238019560229835L}, + {-6211536889696831922L, 3269771882547594708L}, + {-2806444732697667079L, -8472679256324341139L}, + {-5534324430749159010L, 7385757552452744804L}, + {-6189402282341917673L, -7597189316618548656L}, + {6327177260956086170L, 387354508794102949L}, + {-8199327532062722025L, 8781866512582180355L}, + {1757637089703623521L, -2439557373159907653L}, + {-1083020196125888231L, 4898229079940792683L}, + {-4027554827881183115L, 5854278118107827495L}, + {2536452110533397141L, 5053032057586689294L}, + {-5283309880767903892L, -4036089771501382471L}, + {-8726185014741079280L, 6371918861414578337L}, + {5870565960746070417L, -1755043487049372432L}, + {-5981985584772708231L, -5464038684710305016L}, + {-1932877698882443840L, 8643536265538303114L}, + {-1002343255004640521L, -9183473069245370007L}, + {4369245457815499473L, -7541238362330640360L}, + {574307157338267836L, -4775059289639379617L}, + {-9022123090729501652L, -6281514868145333731L}, + {289683520338718123L, 2796625540449362421L}, + {-5791631171477648402L, -4653014207048774900L}, + {-7088072188409060385L, -4095346481442481243L}, + {-4659987534525277948L, 1840919610151012736L}, + {-6573587402478059370L, -394799095862107646L}, + {-9147189283662432041L, 2780457115891390435L}, + {-4621406226758810332L, 4650621948282825212L}, + {3827992897413425855L, -3470503642777527388L}, + {8237187128340177815L, 8338050922877292449L}, + {-2575127860924571660L, 8053904449338331049L}, + {-5807831166865245102L, -4329977027836990705L}, + {-5362714198312494492L, -241660454500896017L}, + {4800564949032048849L, -991028768001584039L}, + {6232971559544384156L, -4931085162898819233L}, + {5346264270546834545L, 4735211348383074864L}, + {4418021854956695145L, -4054404223178521239L}, + {-2503709442294180811L, -2937345847603751564L}, + {-6705525727229877941L, -186811788738397153L}, + {2807916716409994404L, 6999030087777771607L}, + {-140901784876025870L, 1998821964393989519L}, + {8341454749980902529L, 4006910961641213665L}, + {-1877846120130857988L, 7136842530212354406L}, + {-5151008775080326365L, -1658405690903715224L}, + {4141948371168606708L, 8905521338649282325L}, + {-2991396496641036974L, -8951844492612797162L}, + {-8231846204849830109L, -7788963254099816781L}, + {8817247101288954387L, -6748712299598005804L}, + {8987037987198023072L, 9070734453008799529L}, + {-3653961272252403667L, -1706174462105691367L}, + {-5540876112254432380L, 1685272653566639268L}, + {6630760576601451124L, -1097030590189693240L}, + {3952853764187760519L, 5155412125205404325L}, + {-2752207231177565438L, 435598937197933569L}, + {-8990910782429153994L, 8975085101947256973L}, + {275029084438740989L, 1594853272392894824L}, + {4377008995333363792L, -9203724735327026090L}, + {7821963094129670639L, 6001202347774222234L}, + {5910345261804604591L, -6530910287713746869L}, + {-4676534586425310858L, -2447999183969902895L}, + {-893427896035022872L, -9110096049863714398L}, + {-5107326322974521170L, 6912129560394449872L}, + {5928147272454832468L, 2068430724750870080L}, + {-6838714257802993131L, 1280800236191378302L}, + {3828181535474040080L, 5912525367873976485L}, + {108432455104664877L, 1008792111792728167L}, + {6134860905554719891L, 3736157740631835042L}, + {-9006906057728028416L, 2291031958410264788L}, + {-8785087250130628623L, 1747369706716307880L}, + {5107258923997586783L, 4842462885753407158L}, + {-4184502077870950738L, -5221774457734574279L}, + {-4196994343382319067L, -4731152976876941564L}, + {-3602525630290645804L, -7438604867872016130L}, + {-721602986806918388L, 7380942477862322044L}, + {-685749048932716724L, 8558621156455130463L}, + {-2226124441764103982L, -5753212050844017972L}, + {-8444470437189672337L, 682780176504188457L}, + {5967905323104782609L, 872456529921347237L}, + {-774529365691330376L, 2906334255950757352L}, + {5317411683068394421L, -108367910517051649L}, + {8753729036148149823L, -876697494682167248L}, + {-2600284926580864832L, 1079293674000123963L}, + {1501264369203023713L, 4772271458149794627L}, + {-5589106565383836539L, -7585724482444194890L}, + {2671769607792597675L, -8643480525195244990L}, + {-571916257780128106L, 596916564516236145L}, + {-466398102722097434L, 3470290204352195571L}, + {-8668321984643614166L, -453629747624458261L}, + {7631202114905008803L, -4821135673180277868L}, + {-8647922451448787023L, -8485380845549008746L}, + {8025381490498356948L, 3913777583556485172L}, + {6049280950696679244L, -7121925732817649938L}, + {-7696482417187458362L, -8601187295544785855L}, + {7140438358861456746L, -4279316057093339253L}, + {-4921885565559803566L, 6325512175579207375L}, + {-7027307783313071980L, -7680809212541810824L}, + {4879598629629415952L, 8150769622291187304L}, + {-7342155744245645378L, -6215685187110669442L}, + {-2263378697656156016L, 8343706095650682031L}, + {3707257119850556629L, -2120810639767885498L}, + {2267112971575522392L, -826262663858867910L}, + {4213162373130191016L, 4461280045821316392L}, + {8934898250536865564L, 359231887739760556L}, + {-2149765792894599153L, 4707860023048648731L}, + {-5375160376931751557L, -786047454211312701L}, + {2196544121130659101L, -867932101728609316L}, + {1698916734136113996L, -2204779643027651944L}, + {3433172695894846834L, 7596525181878611400L}, + {-2849259564218003615L, 6623954713336976951L}, + {3254138956861413927L, -1133558231039979412L}, + {1285929622626453198L, 5890024885621260165L}, + {-2349127797610817522L, 1562179804252080095L}, + {-1191286947825336074L, 2468833460111911838L}, + {-9055971338481310193L, 345979595229756636L}, + {-3525928115330914396L, -6596590613894843229L}, + {-3227633136719463166L, 5915785628644168423L}, + {-133501853014392460L, -8741758672003862228L}, + {1099153576792978915L, -2742417900988504166L}, + {-648473507797745243L, -1129954793722235908L}, + {-8947946509829984393L, -4829402018135157767L}, + {-183277647411867477L, -288109513781082853L}, + {-8972836557830117056L, -2372987808358806473L}, + {7599024178448012477L, -4273183649325398119L}, + {-4558685557381095142L, 8836884243173336023L}, + {4767843848744584145L, 5190086288935651378L}, + {-1522308275842184404L, -6580417704257825326L}, + {-8584574042672861403L, 92823380696470869L}, + {-1734332735592240813L, -4860675540725285320L}, + {-5832090116698921823L, 6760714595207081195L}, + {-8717779938268738600L, 3229735988985744701L}, + {-1881355893097809021L, 1149009410476147075L}, + {7715529933819950784L, -8766744506878170376L}, + {-2289162375063823266L, 8785343280324053248L}, + {5628801095532857454L, -6766400014785301219L}, + {4961594313236250573L, -7969158326987751251L}, + {4618832900030681591L, -1590199595674682989L}, + {-2860026598356511432L, -4804664899406105836L}, + {1961029532371905567L, -4232908783774954600L}, + {-7427116119564073711L, 7457295679793377814L}, + {-7663272674507523073L, -5262217384322722743L}, + {-1432342159197328837L, 4771708562585944643L}, + {-6656742466964663442L, -976564846383552887L}, + {1884610673731472834L, -785174449433559508L}, + {-3810094228658892044L, 1994759940275525679L}, + {-6616291605664442115L, 3795543339876571956L}, + {-6089433736056798518L, -7266978573829534613L}, + {-7473225570871869756L, 5261130192092551093L}, + {-2962461410122376636L, -5000607733090565805L}, + {-7732736326487208707L, -3693026679333504313L}, + {-4443012182604465346L, 6100440042934878383L}, + {-6157220788020380465L, -2860438289567923884L}, + {4600227015044805999L, 4989400139419054213L}, + {4469639125734518912L, -6122627204883036341L}, + {-7792518910888390519L, 4129047140733643848L}, + {1994555386333163764L, -3844189245157007278L}, + {4369373061497876631L, 343822057089163157L}, + {-4738249058452865067L, 2329646226948660665L}, + {-5995135073617675417L, -4255461102943936723L}, + {8575145712582277328L, 1413910585849998254L}, + {-3326852669647946366L, 2121198412256615037L}, + {-2007891227481667403L, 7221453514528963511L}, + {7761466597038557448L, -6581310753540884344L}, + {-7224144129768088459L, -6327002969543063078L}, + {-6066361559768252258L, 1784238609618085587L}, + {-4068105427650671702L, 7479972997631999286L}, + {-5560889521429203904L, 2898253573510616692L}, + {-4762527649365520713L, 2604657580604116324L}, + {2694767757294725688L, -621761717733876220L}, + {-98412761475871782L, 2779314879118693087L}, + {-1686751510820366009L, -5956651577100715550L}, + {-8638747288926132295L, 1038333600319247631L}, + {-3606421426295459375L, 8477836939368819043L}, + {703911580424568845L, 7030948256080124036L}, + {3806874684410471199L, 469379621331982300L}, + {-5118211203482914183L, -5305374868543386096L}, + {3783835693585708905L, 6654716033399934609L}, + {-4147496567901501893L, 7586049031853109067L}, + {4328139758484363106L, 381917650928462968L}, + {3028068134370267202L, 776322465585926454L}, + {-5966389813687232408L, 3686423315817746584L}, + {2195469898148267913L, -7533513970647659535L}, + {-3080166474377317430L, -8140738602141354389L}, + {6412533502918649688L, -1703582505372665809L}, + {-4801061500654703956L, -4201543830696595479L}, + {-554194900129906123L, -5939632826608146381L}, + {1486000469436139740L, 7831050577063499982L}, + {-6971589411333019409L, 5357835973747361473L}, + {2647463349908157318L, 7085011541975929989L}, + {-6754094203714628854L, -3850873520054179131L}, + {2314399046579224435L, 3216792862731027976L}, + {-6177383374280917075L, 8760408975864465377L}, + {-5619632493646738964L, 2241632268315301578L}, + {-7301831206207675015L, -1821451086573881135L}, + {-5527516975398904813L, 4968354678684490072L}, + {-7206298956882517419L, 2279041835604861410L}, + {-1535337994919517848L, -8761446866156246742L}, + {725107219148423471L, 4750860717864763778L}, + {1938195538047669437L, -5869782778289132135L}, + {1028829726878266547L, 7197029508183468862L}, + {3981352596771855719L, 4996127899543829429L}, + {4637441575637536278L, -6389995039174519370L}, + {-567364300216533096L, 19863152138574099L}, + {4215820779392244698L, 888457597427087114L}, + {5791138156269639416L, 6853760322626114995L}, + {527001488112788484L, -2110465445257708858L}, + {-4390338125863921979L, -2134580087205909557L}, + {5557055272452535368L, 2866065276453045221L}, + {-205316410586789577L, 4480269606588918401L}, + {6952133288635206796L, 2015037502635776574L}, + {-7457518070084443694L, 2263308604979136810L}, + {2002018537802900078L, 7552360032993184271L}, + {1561023860546606398L, 3866818685532368479L}, + {3006183850758749007L, -2336461709355555028L}, + {-1361037422909233361L, -9144929386769396303L}, + {-4203933835330884180L, 4220615295609720220L}, + {7500988945823273736L, 3572390891093078325L}, + {-3010872765453549672L, 6632197017693971191L}, + {-3781827987408697259L, -4030709294737296947L}, + {7460277383018710734L, 3383215657257964557L}, + {5250710645655626569L, -3007683880002548954L}, + {1109553850343924028L, 9126342159911243074L}, + {-6498085059809326090L, -6420733693986859740L}, + {-5879222670885240061L, 442921388511227265L}, + {6210613100795379620L, -1514159259364407425L}, + {-5759675374559290972L, -8245819781762092155L}, + {2824738880545011656L, 3999019159821229194L}, + {3213468672819532759L, -6840569939386909113L}, + {514328750496380347L, 969657192227097933L}, + {4470285007717204101L, -668030492010532480L}, + {2269240343629252129L, -4576239629892938120L}, + {8714859525098129755L, -2826680146207272878L}, + {-6932578361476642118L, -4666717289125206755L}, + {3219949239213817308L, 3712651019435159979L}, + {-974585298959970878L, -1944037411135401627L}, + {6482527911604968876L, 6263685975715881314L}, + {889153561428168470L, -1692016738149208411L}, + {-8207616222981108363L, -491537029006685810L}, + {2386860797138412452L, -8312622730184110241L}, + {-6749686321997906685L, 4061453222465983121L}, + {-1105424552884318985L, 4383295431011890299L}, + {-3137963539903752699L, -8004907349965180516L}, + {-5296550634024189868L, -701828900076753577L}, + {2919221292190747486L, -3730402551719687544L}, + {-3991521756182858814L, -8245448390492788466L}, + {3802413126716557908L, -345388522944700330L}, + {4556158013211621930L, 4837029469954119100L}, + {-1956520472596138305L, 3774560559204626526L}, + {-1667618395239727751L, -8642889400813503572L}, + {-4948155010712448139L, -4045291183536374219L}, + {-2667546434479018044L, 370703145466617430L}, + {-5192951416537530780L, -21955828113889540L}, + {4474564860866849514L, 827322199368359858L}, + {6795504197096101870L, -7090967928316662587L}, + {348555520492747776L, -3642605601802123384L}, + {-9152654684800879935L, 3609495880796821187L}, + {-139520144005307559L, -5156829220828151100L}, + {8655115078308054377L, 6824472990762665216L}, + {4640578432082008138L, -6202001168681068572L}, + {8526214307008571064L, -842893985616753436L}, + {-7079091919397494753L, 8339596036464430100L}, + {-4852301075482608956L, 6187407979941379905L}, + {-6726381834527599283L, 801991602387712085L}, + {-467175742480032731L, -4596941950635352144L}, + {5092513639393893997L, -8012169512241368869L}, + {-916781769295487406L, 4932904650409381585L}, + {-3306005301217276910L, -5501027874234474547L}, + {5711239369216246603L, 6191254119870515104L}, + {7411369067342514714L, -3304087475657526094L}, + {-137089609471843551L, -456007077646664136L}, + {2197853544547148264L, 5840431983889477671L}, + {6994895994975015585L, -7130703368147034100L}, + {-3993584670641567357L, 874766092887871964L}, + {7324113989979846776L, 2238932798202795857L}, + {4848201612974985071L, 4462081907647625486L}, + {-2319141888027790806L, -515485080810423104L}, + {-7727572350242351429L, -1128955356889746097L}, + {3611228677421118756L, -8629406378387284186L}, + {3254031939911056022L, 5981817082841287883L}, + {1315862663037871882L, -4846048396088499736L}, + {2762719496333050774L, 3984785182381619936L}, + {2441476684596910583L, 4447837245869346861L}, + {-1751985778109806355L, -5449837400474558988L}, + {3156518557955714028L, 6585800508293259358L}, + {-7474525109128332157L, 4191565513182283182L}, + {-402634945481420093L, 1145607902421986507L}, + {3711042493776857096L, 2083850151603736019L}, + {-526618219268616930L, 8506153718458047088L}, + {-8956423818433397438L, 337802762069315243L}, + {3318951429850234648L, 2081621265536757163L}, + {-4065748355754556535L, -7239810839294391198L}, + {-2974465318794034149L, -4594332206328367008L}, + {9156201933336414671L, 8488676128423554222L}, + {-1224004278953882958L, 5451979806028482452L}, + {-5567810197150710613L, 6919209359995815805L}, + {7645667176564158039L, -6364331595927960173L}, + {7437954892140634061L, 6193769906536854642L}, + {8595047667824297631L, 5596599227739861071L}, + {-4227841629446459104L, -1381816196560241190L}, + {-4073313779073810355L, -1100784080146793337L}, + {764623093768368301L, -2826222786337395694L}, + {4502563456929761688L, 1522444965027476312L}, + {1027370723462817766L, -6744570457086361510L}, + {7668869338814612684L, 4430603710584195978L}, + {-4780350365503382825L, -1669306996283361332L}, + {-6389061999435806787L, -6048382522434823780L}, + {-2133237830821026919L, 3019116079627478016L}, + {-618977682776693149L, -5595283007067987776L}, + {467656057704319257L, 3340252194762699251L}, + {-6754479852919060751L, -7463769590197660662L}, + {-121796624546305099L, -3251872792366792553L}, + {-6164861615484187016L, -6122786778522267003L}, + {-8568598162483564153L, -7141238264795350159L}, + {-8182644091745100549L, -3046128695748774162L}, + {-3989631051916738549L, 2520402197254872075L}, + {-3812515520109109155L, -1052959236992591515L}, + {5458479505950940580L, 5049901156611941154L}, + {-4068063356781230185L, -6931312104494850376L}, + {-2830766632873229698L, 4798159326705638849L}, + {-7592354330098913572L, -7738117602772322434L}, + {5323147076973602219L, -2197090908151937767L}, + {462800867816435413L, -8465892264165433250L}, + {4002154584204048905L, -6343838674759451204L}, + {-803837213195276249L, -7987366341250351358L}, + {270846859760410932L, 3184418117964900027L}, + {339186719055655409L, -7127601895783159724L}, + {-1681073433226249949L, -5136145993285919552L}, + {-3172364168133842187L, 5692701350597281770L}, + {4471576722877991666L, 7336578103784155071L}, + {5796602822306813285L, -4343030338723817984L}, + {-7918394505018135767L, 945395198631021154L}, + {-8099706435104488972L, -1543491225353143256L}, + {3225305587851029418L, 1333690785007789042L}, + {-4366886220054887809L, -3805519626113819282L}, + {7732358946751522729L, -3514173094342856229L}, + {-228816160482375387L, 7384891550204744673L}, + {-6429545033940023762L, 1845280019375987556L}, + {-4874531170284168803L, 2520265631372728029L}, + {-7919754354938613725L, -1920613329185200100L}, + {4818550076091948962L, 4007439941177190899L}, + {3907701057522316102L, 8115698842586570458L}, + {-2162109673539899314L, -6362182245437049350L}, + {-6296577330837677905L, 4719157127069353305L}, + {-5038523314786213767L, 70331235006715892L}, + {-4182256071671167089L, -5164070196885436699L}, + {2347804671767305901L, 6890490985369083991L}, + {8781747195783722684L, -830329723931541835L}, + {5464112250608435856L, -1927457777938790688L}, + {270499223000052613L, 3675803965927755072L}, + {5387476652934255975L, -6395450047775553575L}, + {-2665753069813354951L, -4080814832687079840L}, + {-6640316903187366435L, -2606831033508573171L}, + {5182130073111288069L, 7783191129863644770L}, + {3324630100168604545L, 9095696793714934253L}, + {6092224834024861844L, -286084573848786709L}, + {-7314979478990434840L, -6890507861998146207L}, + {2475323565628074124L, -4029447883164980292L}, + {3744881942029260381L, 3299671597926388309L}, + {-4468245448047387416L, -4345821869343888643L}, + {-2514532843437356755L, -5136858393253322995L}, + {-8460931029051770120L, -766778949005394803L}, + {6058982121000846509L, 3481461461609071838L}, + {-5771467892492359246L, -4759906717287388472L}, + {4284427580292476574L, 6567648321559840989L}, + {-4502826197302040607L, -884928098330744829L}, + {-8909965133023702444L, -598600634803733804L}, + {-5152825667036557377L, 4060129298892129136L}, + {-9001319942906464381L, 8881985935379199325L}, + {8783326653870239059L, -2206839120202500049L}, + {7169538748654303504L, -3760964465816388168L}, + {-7206711339673245443L, -4408205839339337277L}, + {-959892259265562431L, 7053151831906485899L}, + {-1673323329893911437L, -4266304761003565025L}, + {-5827914418805049723L, 3887362082768648751L}, + {-820830695253715046L, 3506786828941982744L}, + {-5782181341435499931L, -513904845096444765L}, + {2663734005752892035L, -128005322426179870L}, + {6987511185271585413L, -7874168125153003313L}, + {1292089443730939651L, -628053432962923666L}, + {5587170596809636807L, -2613417850126827556L}, + {8237809229146017083L, 8084633225427135915L}, + {-2235781308356196513L, -2827636188226841116L}, + {5423273201690025713L, 5516220885776174723L}, + {-827014178432784464L, 6712876247104625930L}, + {4410575469603649344L, -7034242775638553169L}, + {-4472642034035214939L, -2034015765295524502L}, + {5360193252716249224L, 5081471891122198741L}, + {-4572235983836835323L, 7451697056844602164L}, + {-5433653902594010857L, 3434435237836646075L}, + {4134790485921001466L, -834212517906731898L}, + {4485288889906709425L, -1712294958510249491L}, + {1685824402735587758L, 6343065064147664744L}, + {6091818520229922279L, 1108625331300764354L}, + {-212523426857309616L, -4053352983179692768L}, + {8873690209863775893L, -2171715089304193225L}, + {-8812432523459654235L, 7211091108192522268L}, + {8103047819338531286L, 3711940572100389263L}, + {4614534509558570387L, 5444031939093833792L}, + {4229082172984667846L, -187259441036600327L}, + {5484460792243331111L, 3829189205530873306L}, + {-2385763800014084246L, -6039720700812665895L}, + {7030455160712580607L, 6382913871702743864L}, + {-4237997225503760625L, -1922458832613918767L}, + {-8124291737715145061L, -4527631494483919871L}, + {6327782024255912635L, 2809957004087136653L}, + {-1059957986215325879L, -2420735678896220106L}, + {-4603394046555224246L, 8601361276132080486L}, + {-412280426794415941L, 3234625889254726291L}, + {-3912022758691365061L, -7583905311611097645L}, + {8274283857906326279L, 2184666272143163901L}, + {-6679687570538459747L, -1449850152673288419L}, + {-6155809572519276859L, -1979751836203826716L}, + {-341344339192464824L, 3018394569217164771L}, + {4137861550441588415L, -5754764276232000291L}, + {-6618940267671493988L, 1914198431867340287L}, + {-7291675023689911653L, 1607477724244498217L}, + {-7953871974818004574L, -2599486547593093280L}, + {-397153165830243551L, 6139117266404059459L}, + {4399741193484513820L, -4274767466794993785L}, + {-7321827371527026850L, -2333449639160768202L}, + {1338155597001139997L, -2548173382440401300L}, + {-7945100475342274903L, 8020110768851902224L}, + {4522579580699730675L, -6875195919910217236L}, + {-1777997817650119183L, -403892898634974893L}, + {-5064101783437092203L, -1401240413820955912L}, + {1113553310062801693L, -3995214081458919524L}, + {-5709720543205442481L, 927381695298466657L}, + {772882345518435045L, -3147890619821539813L}, + {8903336589907078605L, -6699858563678390112L}, + {-8789465120959251318L, -1189645965180491835L}, + {-7834044567177051539L, 1676372503530702213L}, + {1770279151425541006L, -6398305042157421951L}, + {-4941283968572768930L, 3162695053295271273L}, + {-8127231558741248281L, 7942267134725934901L}, + {737747628416269099L, 520551528520897480L}, + {1574449851957266285L, 8754535681980459173L}, + {-471282776174276539L, 8242818857795592321L}, + {6739952936193376447L, -1946621864275407187L}, + {-2424982200476312714L, 3812356397318296401L}, + {176022186483763915L, -709740258783380911L}, + {347356729555692814L, 4480055311182965320L}, + {7550980861784622262L, -7976605459581456325L}, + {-6474882761637742162L, 864430267918049210L}, + {6769254801287215843L, -2567621002890372062L}, + {-7346044586598503820L, 3212842589322747836L}, + {1815045574884249754L, 4277372518483154396L}, + {-4240219227462571370L, 439915893382050539L}, + {-649819224919779208L, -1111682246597412639L}, + {-3697860834931443057L, 8490404538930416915L}, + {4209607762757612835L, 3651293147183772096L}, + {5512379227441488333L, 1047566282088978950L}, + {2554702396243693813L, 394345515667168248L}, + {-33063197416101018L, -7242273122516823999L}, + {6204387436027047110L, -2486013089072936897L}, + {1121696558750946811L, -981625281791640302L}, + {-67713675745955613L, -9147432709665441552L}, + {2900236341998750711L, -3242894057113096546L}, + {4072627124871947361L, 2568923051531765618L}, + {3411250942283240973L, -3794534011481282225L}, + {3459019187218245290L, 4975406156688201052L}, + {-4931935198846519054L, 7746420830231423069L}, + {8420402881327935528L, -9137776997333750418L}, + {-2700073972687127894L, 7440926613678198288L}, + {4135622085465759778L, 1922177824387806658L}, + {3115364578959809417L, -39062662364695498L}, + {7905907040079822152L, 1652221253552164825L}, + {3117202331600018366L, -6352534687564691907L}, + {-6912405766950946927L, 664843781442374790L}, + {-4526890208931001416L, -6736625070925799980L}, + {-8362196017109360491L, -1402801909960855613L}, + {7990163642449120866L, 2406982952217461208L}, + {8921333090931858791L, -4099534793476161857L}, + {-7835160532401884454L, -6581739995481489291L}, + {2597345228860385242L, 7606102447237383994L}, + {-2019901582135813985L, -8270782380997806585L}, + {-734731610197007345L, -377734071426125465L}, + {-4478738615320414333L, -5521141880370424976L}, + {-7971363857175568029L, -6039235291455986157L}, + {-4550695664824391599L, 1387891693133629815L}, + {7004896942426055925L, -7263582847205455039L}, + {3243444764663891458L, -1561779634771247681L}, + {8221182849925835178L, 284616156990708392L}, + {8413639868002181795L, -3417011274147731084L}, + {-7599742913553767497L, 6735403778117774387L}, + {-4861871033227348667L, -3342667103008656516L}, + {7180813616057727196L, -130573597887794775L}, + {4110358466985293134L, 8412194900106960305L}, + {-9163301540202343656L, 7441551524528441254L}, + {7407431836530456233L, -4965816325150483505L}, + {7168833492994704184L, -9066751607323653514L}, + {-3225184215180636592L, 535785430806826282L}, + {8550286352383434501L, 3641342818619034585L}, + {-4037242040051553894L, -7777861270948397331L}, + {-7019860459089371337L, 1059174507624850078L}, + {6499568859919656194L, 3031741024498209628L}, + {-6517870390876058597L, -5171583494332061357L}, + {-8816903563531564452L, 2500915269629225596L}, + {-5488567103311833696L, -8369938414214715017L}, + {7162975208461021799L, -3741661550798250786L}, + {3231150263108104601L, 5489430759658693665L}, + {-6472825090155306196L, -5229190418016637501L}, + {-7112727281349161724L, 8638207742440339295L}, + {-8908480908774446053L, 1135397788772172543L}, + {-162138742916032914L, -9157670355820390217L}, + {-4934765719133081654L, 5264770544051296674L}, + {-5383597847234182085L, -8622588421575346549L}, + {-1457750799424768103L, 2900589679751304212L}, + {2062788467226997042L, 6934402819579476339L}, + {5195212083662151172L, -4993043678018816500L}, + {-7086725269988157115L, 5165632918103528746L}, + {3216790230270684188L, -1498081570553112883L}, + {-6772983200597124262L, 5323428267774554312L}, + {2139536380152189149L, -2123846892813368415L}, + {2783400616608816134L, 2640993991844476928L}, + {-6309269121238725342L, -8968814731582872564L}, + {8703327852945446994L, -2169317814052701370L}, + {5986578967392046329L, 8988225347013839366L}, + {-8686234791137218952L, -1293815802100229147L}, + {7147175926193618258L, 8961828719037336812L}, + {2812520130705527307L, -244690421709006577L}, + {1012516456501023939L, 5782308992605392643L}, + {7796658848573086967L, 5954450867936080446L}, + {2642184550087192362L, 2918994474340013448L}, + {2521303561751617614L, 1827340240292302525L}, + {-2372355039844318123L, 3067390826707986478L}, + {-7982908463432899233L, -7688424486870428680L}, + {-4773586301827797121L, -8957053550728164265L}, + {4040904044293393487L, 2826062411708434021L}, + {-142670900232845920L, -7897084558815522344L}, + {-10691804562559377L, -2234946696504510507L}, + {8453630879397574208L, 5221283089826208428L}, + {5612078661433375152L, -5827827668460398004L}, + {-3592401183831123809L, -925198903278624285L}, + {-1194636486876965628L, 1773996642463132256L}, + {7144612844993582305L, 3804996741813028381L}, + {5952025594559102453L, -2833062603703238128L}, + {7768859735998504182L, 2017446387476411629L}, + {-9046596974248194873L, 3950090712041650564L}, + {-6171084369920910835L, 3290438712182319518L}, + {1781418400960307869L, 1867158814203969428L}, + {5081999630281512875L, -2037971351242799267L}, + {-5147831879244994539L, 7584142773325361699L}, + {-6245492622672631422L, 4218402275190977020L}, + {-8665204890652827995L, 631176852120721281L}, + {-1175718303513980672L, 3584072626690154612L}, + {8885449897820005156L, 9136594867492618470L}, + {-328163209321586593L, -3184598578381106244L}, + {-1445525508305375763L, 5152237349583818010L}, + {-2100999238041350502L, -5528588035009373442L}, + {7410786050561217868L, -8329610059860877786L}, + {-7914164711220348362L, -8575660962837876685L}, + {-2906200250494490361L, -5595724376864178814L}, + {-867790952312765711L, -8796607059715677925L}, + {5887767909251264450L, -2886161295052843437L}, + {-5789450489200739242L, -8648773361803380858L}, + {1662159886119924244L, -3498141174490735224L}, + {5012361370472355454L, 5637973419645599298L}, + {3429745384914079292L, -9095994212145066587L}, + {-4445208736020219814L, 1969046699177550355L}, + {-5413763295704138557L, -559955330032103584L}, + {839374495111075513L, 6529524391959302548L}, + {-7648977736915073173L, -1003589388967555446L}, + {-3664832624688924839L, -1936172468666972698L}, + {7158412277573249226L, -7956802618942656016L}, + {7779305491962558566L, -4843241120730501684L}, + {8039313349173431072L, -7999087482161649872L}, + {-4220847824862505833L, -7596054202827084588L}, + {-1939839155925934724L, -4913883888222467553L}, + {-8034010027834756500L, 2813017045387334571L}, + {8475758752811450501L, -1613769428216243240L}, + {1099214246266343746L, -2807494640498805644L}, + {9186354033975902114L, -5197162245251778905L}, + {2335697942068596836L, 8495832137497385808L}, + {5125601667360226370L, -2587705732341378662L}, + {6606318187238773479L, 2430230045828080098L}, + {-1182364933194642155L, 7501505225324109667L}, + {-1282696136769309305L, 3965216814875100263L}, + {1154559731683162717L, -6044142788611156010L}, + {2886049233756462774L, 282833821358901737L}, + {4825677492212933300L, -3505216937575005480L}, + {-9121350732551109877L, -3988694319279921100L}, + {-877752678277742358L, 2128030531232165648L}, + {-3266764465431864389L, -1383775789144281321L}, + {-1914199636241277795L, 3172927205861865522L}, + {-4687907120417383299L, 906209675925715648L}, + {-474253911596715394L, -2676977326907041001L}, + {-7075290400477487025L, -3777175211466737205L}, + {8134957124130148548L, 3995726904947096316L}, + {-2992238854808660187L, 7288621377035663598L}, + {5996516183600836003L, 7996323395017882596L}, + {-371549095799671162L, -1963723397664742141L}, + {3902975175457565825L, -2096359685759558164L}, + {6605036583318392521L, 88737143141685448L}, + {1891100275270423451L, -1745981040411221219L}, + {2119245665259072674L, -8638991354136966831L}, + {-834774890825819923L, -2471622230063928436L}, + {-231771124221128734L, -6259176704025750253L}, + {3133196876747178672L, -8434923388925317687L}, + {7298692169226203885L, 3209300628873906858L}, + {7126455091552696586L, 1374898972361753100L}, + {-2143648506542037333L, -1300918538344005110L}, + {2865309216991778464L, -4741984767119458210L}, + {-582169278536046195L, -595021088316172951L}, + {8080177625773872889L, 5605701634825149343L}, + {-2641866597771089394L, 7968669847987563730L}, + {-4210759777426999986L, -8597023424475589165L}, + {8940623302154716559L, -5059512967836662675L}, + {8753678355208533280L, 7535049518488467454L}, + {-6281297936039038456L, 7457909342608693553L}, + {-4466014453281785565L, 6248139512270887953L}, + {6273362062923197148L, 3871429116281885402L}, + {2333217083667471091L, 193753548221085829L}, + {-2134695293413683177L, -5181203095625161285L}, + {1638282373040657672L, -6368003890771549617L}, + {3200622258378038793L, -3326095973277466097L}, + {-8777912174432066160L, -650529619692776996L}, + {4509402067996738269L, 4817027167761014779L}, + {-5444623700171973227L, 5528512453315198768L}, + {-4861257960719874399L, -3622276494377371155L}, + {-2931845644152220868L, 2153074555510703652L}, + {-2415035074251453041L, -1006946510571967488L}, + {-3415608992526650142L, -7840424641444647872L}, + {-1100060277548286709L, -2271450031970914418L}, + {-7950756431533405941L, 5441868159791814728L}, + {2529778543681983619L, -8854951009938006713L}, + {-2509511542105356611L, 7853654232309547016L}, + {25235701976844069L, 3517855992525250730L}, + {3512243450460933893L, 3972430887397192492L}, + {5497081699936367558L, 8383940244504833083L}, + {8834833749235004269L, -7334675479385357802L}, + {-8786955172657476976L, 225166460691346798L}, + {-2806229680204644453L, 740198459796101590L}, + {-5310949673572257587L, -379186807769692471L}, + {7180989110601385791L, -6432354723404698372L}, + {4574812998786692932L, -6039313492850770833L}, + {-7191136183375597108L, 9110930278055289403L}, + {7817612065160053901L, -8258693647460211987L}, + {4092147258927215079L, 8293168384517520663L}, + {-916694886327147203L, -454314143918346215L}, + {-8155481011317235899L, 2292426029549420190L}, + {-6577214469178899288L, -1924115905005123142L}, + {-4704682976594284594L, -3476799468679251934L}, + {-970000750564611255L, 2791886232557467235L}, + {6392037803435901919L, -5315497557080833696L}, + {4653466442162924160L, -4133878190287801900L}, + {-4217569099833350175L, 4839504582831160901L}, + {-7494295064988163591L, 285188759198988857L}, + {268071204677339466L, -7292395415962103265L}, + {-3128139626778549626L, -1174396804280713279L}, + {-8490295735340959824L, 3060015218167934818L}, + {-5162368829222403127L, -3393984135225595684L}, + {-4379157681365371219L, 6657143563587679125L}, + {-4505869932044746193L, 6319966515037375738L}, + {-7725004848904746158L, 936557326289189579L}, + {-1077347489733049759L, -1247066987861982979L}, + {4372692724364737369L, -3256637161950359616L}, + {-6095523387109702205L, -1290870227696084252L}, + {866555760732064401L, 8351687362397734775L}, + {-6043383891507219565L, -8719495801073949943L}, + {-5064298145687783678L, 8068427516165501654L}, + {-8284554766413268444L, -5044265653521567680L}, + {4358509246174021158L, -8826147307297954564L}, + {-314402459279271878L, -5933542775446256478L}, + {4534052702364464050L, 9082121576264326126L}, + {-5069975264209271430L, -2280561666567702498L}, + {7618881160105474363L, -4794858632711295348L}, + {4167592104901771551L, -5018298706610926606L}, + {2277499839812963141L, 4242448307766779616L}, + {-5797737740917833733L, 264493678146677010L}, + {5386843611229288306L, -819526727917515385L}, + {322032948055534721L, 1736760202411262747L}, + {8623908495470433985L, 5436650610054812536L}, + {1464656873108399270L, -5202587803213018241L}, + {-143110847782655873L, -8510401654127848035L}, + {-3683505493125515417L, -8668734897929026338L}, + {5263884653798534228L, -1131791277133219585L}, + {-5596816932431872850L, -7650966445894865682L}, + {449263668055475580L, 5943833600560494318L}, + {-8209880385374160761L, 5433449067757110313L}, + {-6160876842633556933L, 2106036607754168591L}, + {-2822510119276015598L, -1169309301398832317L}, + {-1867833971803598158L, -5215126721010895403L}, + {-2743011208375680513L, -1334137156024540894L}, + {-562758870972224424L, -8858736479960857044L}, + {5241707884356795802L, -404549239240361305L}, + {3044382044884310303L, -2578848030062168952L}, + {4240643424518839454L, 2009743695925300205L}, + {-7202731734581844883L, 3560548372442035725L}, + {-8098501199143125283L, 270444074204918235L}, + {-2550459180607677020L, 9122097925106566372L}, + {-1776717083783659251L, -5066722509244044276L}, + {-2343369089757631624L, -8570356075106548461L}, + {-6293279254462751659L, -3762530309367743723L}, + {-9100627021059872276L, 3178453993421526858L}, + {-1298100985130924363L, 1942143010909260088L}, + {3390116780901102550L, -334576415657279307L}, + {-4663999614093100429L, 770277787515502772L}, + {6916372370306791572L, 7435605989219979813L}, + {1488349423055656442L, 2113647012381226787L}, + {6773020852755024150L, -852366200604922241L}, + {-7005014351468554871L, 7485133827588013786L}, + {-4753926923183579314L, -2312386844690556698L}, + {5415870192658316069L, 463479081020224407L}, + {-2670881940811475410L, 3507169512028760304L}, + {-7225213211793183097L, 3981958135443174761L}, + {-5703028807893997804L, 1264194096693403893L}, + {6561444537664669662L, -1954354266407705042L}, + {8939981796276591301L, -4733058470244221471L}, + {6017910964940092953L, 124625799714735872L}, + {4500890776998912544L, -470688000960484088L}, + {-1835018042586347444L, 7653403345510987769L}, + {-4191687948466793374L, 7139837548565246758L}, + {4106435482907441086L, -2126413898085076347L}, + {-6130167349217050086L, -3959969099349735016L}, + {620129892796426300L, -62209784009239054L}, + {-6144158488464216798L, -8173934466594508364L}, + {-625006850515938527L, -5809518885326364398L}, + {-6682172611475406987L, -1714940790350536113L}, + {1220842624016183584L, 8269949841236476393L}, + {-7098540157067814615L, 3531738600537340144L}, + {-4378743347226734130L, -7327441054828053137L}, + {-6508042393772984279L, -1840909133921621497L}, + {5289282493574993598L, -6455879780378370298L}, + {-6781000719696595982L, 5177178370843840548L}, + {3322666381578332368L, 3134586237016402769L}, + {-8173363279507413324L, -6524402652348374595L}, + {-3603049973704190207L, -8475965567552946377L}, + {-4316988796658196446L, 8866378184082028533L}, + {914989291445423876L, 272931860159225473L}, + {-305370752767861151L, -7996913970986439765L}, + {-6987550192802158001L, 3191979351473290494L}, + {-942676483343861967L, -2153209479961610339L}, + {539036846465448158L, -5955756213951094362L}, + {1605373100913987077L, 8903900718100188013L}, + {7713068526230669637L, 5191047107663767366L}, + {7241900405827926293L, 3287960505839783884L}, + {186408038263119881L, -725098263159168344L}, + {-2429472274603752977L, 5905214161924496910L}, + {-5720789098334319209L, -8856816197357357489L}, + {-6674769505767916301L, -2005822193174095488L}, + {-581393540490176967L, 2751755671060133347L}, + {3124744789645879825L, -4243941635080647386L}, + {-5602915602343937931L, 4501087988245599909L}, + {3263507419526132695L, 3560352323108238394L}, + {6937077332985554718L, 8731941696760140572L}, + {-7919624999578199393L, -2867710728097054893L}, + {6556190618267765484L, -8112004817108418177L}, + {5682381095734864238L, 589618283089403862L}, + {7614251273120089370L, 5724958541163307665L}, + {3395157685499349978L, 3613526290468317309L}, + {-6398328093992251036L, 7596033768669695677L}, + {-2651093395236575804L, -8014022518016193809L}, + {-2097470820892650054L, 4842033680917117547L}, + {-7267148748500151232L, 4770828425873813766L}, + {5507274834982481157L, 5091231856170754714L}, + {-2194323672581532616L, -9144268390755820585L}, + {2269493654210886217L, -5259401698591517179L}, + {-4216275761811372636L, 5086789201000199700L}, + {7228709978053803804L, 583987105370029162L}, + {1544682503099095700L, -3570389176034465400L}, + {-8135200911288478327L, -2626445514253500075L}, + {7339704802803690870L, -306444582707945130L}, + {-9063598666954112733L, -2616502440081045224L}, + {4249185982522288588L, -1295355602551546303L}, + {-4695745996091883154L, 6444320363226433806L}, + {2627137268581003083L, 3621089752612839029L}, + {-2578238879441406084L, 1208907918137575489L}, + {2429552460105156204L, 8195465270198839978L}, + {-5016405662860787559L, 7224902700860526388L}, + {1213685060600888916L, 4648386381705116369L}, + {5207480625629771054L, -2798226710980115801L}, }; public static final long[][] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = { - { 4331629317196124516L, 1639885090772725551L }, - { 6697150685477982789L, -1583908083060253398L }, - { -8292226578951944721L, 4476804508315987292L }, - { 8469039529317823308L, -4636474853694258398L }, - { -2848870975062246556L, 5233816596372106824L }, - { -4847447143719480019L, -2687604445613537347L }, - { 7545677836808206678L, 8332429470403026021L }, - { 3540211138895396408L, 3992459923157840628L }, - { 1285813610291173716L, 8233152553044849459L }, - { -7784481855774059403L, -8096273352407245883L }, - { -2714345854300347086L, -1562905338847105568L }, - { 6925684980325533267L, -3117242072537376104L }, - { -9112643559117885900L, 2771189218553273490L }, - { 1882756241765347250L, 3134678319768795724L }, - { 3701001212619307056L, 4694823574419600457L }, - { -8419102115735858709L, 1167505134600559530L }, - { -8964415716902764417L, 7665362522302890520L }, - { -65484870057070163L, -2154863037755560524L }, - { -954938640704679474L, 6388877495784709814L }, - { -979562365498527144L, 5481887351687388723L }, - { -7382239783186871562L, -7733943340511654057L }, - { 5251153271619350814L, -5357392133568419518L }, - { 3564854195161521021L, -2021636742340634953L }, - { -74312886167345484L, 6701300805910281389L }, - { -7331277368683814568L, 5111706538133173116L }, - { 6180175351202170214L, 7106065787858343366L }, - { -5506848341444621561L, 7868028660651681881L }, - { 4709740154938203410L, -4396229032691618835L }, - { 7716297005579308510L, 4776035376666368100L }, - { -5231218401659391210L, 5502389999871393522L }, - { 2808335999161107948L, 3172485746495004832L }, - { -8895902480507490378L, 1734050687059504670L }, - { -6484295527863798667L, -5865043420154797721L }, - { -4893753704679531145L, -1407287398624235464L }, - { -8013506817112676885L, -2413542569879967512L }, - { -7115565146196200482L, 1492091106940842223L }, - { -4250908842491168006L, 5100692366480332295L }, - { 7641455146012374921L, -701187772797485824L }, - { 1171882517985315020L, 6041975995921368652L }, - { -590591174345433298L, -745155016275351721L }, - { 4353825711501646860L, -5695286777690739329L }, - { 3766038603438423921L, -946995585431570618L }, - { 5669741062587975241L, 3306563558377990077L }, - { -4034141614316184690L, 2303139291793139905L }, - { 5042354261806495873L, 3029285818524047503L }, - { 8171624055608706139L, -7686014468326816771L }, - { 2465028573996743971L, -5155189837447338979L }, - { 231525910304521521L, -7468941650786504332L }, - { -2906566784067431233L, -3093130381718113227L }, - { -5815630959969268197L, 667274393249985457L }, - { 6867289460752780832L, -2905703229103006681L }, - { 8367342037681739365L, -5211011903304858229L }, - { -2281353332963214183L, 9220933480317079273L }, - { -7873419781565326375L, -4958329158596891671L }, - { -954320324783281344L, -3907949502207462370L }, - { -8978876518219901536L, 6459759108635159800L }, - { 5578589535412452811L, 5347663850081616344L }, - { -1139114663023920493L, -1336174274889435851L }, - { -6125271792804196849L, -3695347576125854749L }, - { -8540897085876126918L, 6006668829300360192L }, - { 2457750544363517570L, -595538372156368515L }, - { -2873340196283457206L, 7722471153320550112L }, - { -202735095288385060L, 3306848206005022873L }, - { 4680342363383152427L, -2968985762887494339L }, - { 3754567565766477241L, -6037287120647939733L }, - { 3030040040421745654L, 1937599850940715675L }, - { 885892669913812197L, -6287203992695247871L }, - { -4668401756510431198L, 27796623019379649L }, - { 2828217119128588853L, 2936780557572794362L }, - { 40721351745424859L, -2784176622995643676L }, - { 4226613921171131261L, 497180669697206711L }, - { 2476560251925287446L, 5820151453400560579L }, - { 4857915294336896964L, -6247280158567945841L }, - { -3243612273020441258L, 2836499443783443472L }, - { -8323173319150694718L, 5859965750769241918L }, - { -8464714455451733912L, -8306892192837505339L }, - { 2417309479822957758L, -1246973976546704153L }, - { -4970343771720203825L, -3191439884819854813L }, - { 7616892889149047131L, -1492818326952765975L }, - { 3179230974339910862L, -5929287588380075388L }, - { 353551526640305233L, -7378339587947523515L }, - { 840447756688080769L, 6565835274439444296L }, - { 6560453897067438875L, -8337740380118346582L }, - { 6404605759690477879L, 1860833063820863399L }, - { -5798495500651630883L, 1091158385497258294L }, - { 3489314580607854539L, -5573961258448405293L }, - { 7361202545248788112L, 6034580963668655699L }, - { 8662317980504766524L, -8926545602578986090L }, - { -9176879321700063391L, -2398921906930257590L }, - { -5722341628043847505L, -6351286801388339488L }, - { -345401929977388616L, 3005904976331127429L }, - { 7797208744999634196L, -8634345153714809468L }, - { -257714712793164095L, -1873140185420586258L }, - { 6828368112434274995L, 7058669897955400332L }, - { 6587574874377658116L, 4874363645196347164L }, - { -8420691969719514848L, 2341431149372744263L }, - { -1436841954376886408L, -7620195622266955703L }, - { 8390237817828095380L, -8971128665773428134L }, - { -1244269747449213801L, -5329391842655754631L }, - { -3239069421268305651L, 2334172164129027696L }, - { 8057896190039586L, 7452686587683727169L }, - { -608430754954139223L, 3381655527636719735L }, - { -2634446749318812749L, 7010915016267118875L }, - { 8929276493775119227L, 4292272306792598039L }, - { 8931573570276676636L, -8519118794081841344L }, - { 3822004851281897117L, -2203301444419626572L }, - { -6152300141823657396L, -889109731424416165L }, - { 7182476636738674444L, -7649930728107420084L }, - { -6684339015093823920L, 6577956481422755158L }, - { 7807280739361302131L, -1135517321040401801L }, - { -923194570850102811L, 6467757807397379780L }, - { 1584573338514642399L, -3893190475498763966L }, - { -498065553132084148L, 1865266646395158771L }, - { 1799679540365788870L, 5841239947085522603L }, - { 9045748501111411219L, 7421695194818838145L }, - { -7637550038764425741L, -5845707294280746103L }, - { 5329558184254416917L, 4547453660021049624L }, - { -5342451072932073021L, 482260313304954060L }, - { 216480453064876203L, 711069328663754163L }, - { 7508106403501961131L, 2007822021650305972L }, - { 8725508331413138293L, -3626352862801032903L }, - { 2560531293828421548L, 553012714310330725L }, - { -2008955238081544825L, 3340257035234765328L }, - { 6529104080181178646L, -7547960671941050622L }, - { 6099628745411598729L, 8241958247598079573L }, - { 2756659790325965589L, -1910461132866830894L }, - { -9213432955006411442L, 3852602514422689973L }, - { -6654664302901669378L, -3591698504276609326L }, - { -3643300284729203479L, 3240996573344966350L }, - { 4663787755159455929L, -7043137326384228379L }, - { -669710962240484079L, 2198151612197094376L }, - { 5035186860853879345L, 5689607670679160328L }, - { -1497009633866831856L, 6116439920220101860L }, - { -5364225470045216191L, -2524583207297749149L }, - { 7960728708973508149L, -4484834555703476170L }, - { 5512091823114850815L, 5169321183215226123L }, - { 7721868783230577176L, -82870217609973041L }, - { 5949192792297315127L, 7386107438936735767L }, - { 3638671413276752949L, 967354079224124082L }, - { -3493999225022562864L, 1736987366587456064L }, - { 2975169008368240023L, -2911062917802181439L }, - { -5830673024621691907L, 7279518614247137665L }, - { -1139876564413364861L, 2573839846536122317L }, - { -637830076892861526L, -1400018571611626811L }, - { 3073567850729737274L, -7060083933758612828L }, - { 584182832408009040L, -1684515357135093979L }, - { -4548011654370479917L, 3650830433632177136L }, - { 5119409690433687288L, 1363851279412653639L }, - { 6532746751816727406L, -268134467754466L }, - { 5036805181987997026L, -5288517888352132842L }, - { -327803426338917854L, 5322571032958708131L }, - { -2189559856150793303L, -2933300712108522399L }, - { -7915301437281691707L, 2943568251638140676L }, - { -6227342842105738959L, 8099698710467077821L }, - { -8993001121053935550L, 9126194125698526755L }, - { 907730379649993758L, -3652315413425215569L }, - { 5023461831735961354L, 6919412303663430221L }, - { 5364101017343427759L, -315599275077811411L }, - { 6923504748893038502L, -7350219810380230143L }, - { 4908646141995756237L, 8507617699718047232L }, - { 952783116860484934L, 4009659776894373679L }, - { -3294878312196750608L, 2442027558747033926L }, - { -263001097034647143L, -6632583776719317880L }, - { -6341310972840343572L, -2656983727499478166L }, - { -2779322160924414865L, -8687174340132939253L }, - { 646982227875835088L, -8921122925878035469L }, - { 4981486718593732420L, 610621754580223298L }, - { 3136424241367791514L, 4883504922076234513L }, - { 1588727704329333995L, 3030073555385079838L }, - { -4070703023625741663L, 5658459444065239280L }, - { 5828932422032929570L, 2856038697306292627L }, - { -2881020791961093427L, -6214682596907600989L }, - { 7289018053124519212L, 5097157380496129712L }, - { -8210232022318257391L, -4945331947102062592L }, - { -4932159699729152421L, -4454262099293472400L }, - { -1519151536033678760L, -5023767059372904822L }, - { 7768139346588245743L, -7913086732140250835L }, - { 4663204289123975746L, -2718362182895828791L }, - { 8301645006754151822L, 2622047573067766958L }, - { -527375505220402703L, -3652332080375247426L }, - { -5729392141767077416L, -4151319741037085130L }, - { -1061319607921895354L, -1409911642874475334L }, - { 4940818006273925907L, 2184222853857570529L }, - { 2723620363371285152L, -7672690566794057192L }, - { 6252714915337699141L, 2314830992990646948L }, - { -7047533064810318960L, -2008174505846145161L }, - { 2306818986335389881L, 8249997590679901194L }, - { 8450065497909871849L, -8831895305229340716L }, - { -4217000768181820795L, 1544531499573709440L }, - { -1337267428073608141L, 6177006046804863469L }, - { -8857633266251591090L, -774347292282095068L }, - { 5164282658652255398L, -8684179529877357750L }, - { 1481739352759587670L, 5414525982296129222L }, - { 1351986975138349201L, -6185528530236014533L }, - { 65929927533374434L, 6252977882818877758L }, - { -2314142725260293145L, -4877218633614863001L }, - { 2620263026747810589L, 3958401008161325769L }, - { 4469476270705785392L, -5430615574033125470L }, - { 2056538272538478077L, -862355286215931849L }, - { 454180883353015865L, 7762719650023470972L }, - { 4839487715844855786L, -7900083800860489486L }, - { 7942533619400842120L, 8585038689893337276L }, - { -2815467195740173572L, 5296875560477683335L }, - { -1083538654790434734L, -9193249793920630201L }, - { 1889012098251655317L, 2527085564415319906L }, - { 1741657056552907771L, 5592210964440272641L }, - { 5723507339014228383L, 5029630212357158901L }, - { -7032334681933015537L, 4084980747390945864L }, - { 2463118178158422515L, 8098757569442079597L }, - { 3752105439687274244L, -4181414926127006394L }, - { -663915851310858086L, -85354840719075463L }, - { 2011110544817827104L, -2671072148767894820L }, - { -1420169423837059118L, -598759081963898162L }, - { 8553587424506667053L, -5240400034332352370L }, - { -7662248035234626103L, 1325294974957692694L }, - { 6679274078239456105L, -1434928924752403272L }, - { 4819483627709809889L, 8478319941508844354L }, - { 9203365986368075354L, 4033559530674635870L }, - { 5950679156247704341L, 3837428951973829103L }, - { -373315081569566463L, -1482507884485177621L }, - { 5339226513315271605L, -7611681873083001579L }, - { -2219527427249265829L, 5635133397518404122L }, - { 747296102288535702L, 8973619218046772307L }, - { -7493057443430069396L, 3497964097134584394L }, - { 6724043080988557848L, 438429818292787405L }, - { 2032101896102161207L, 6083472720220104745L }, - { -1656936845267744649L, 73740362659034890L }, - { -3491848432979599234L, 8493083653578236787L }, - { 7404204759825967163L, 1396472196281816555L }, - { 5796798020837779651L, -2345404432560011061L }, - { 5185226877395757398L, -1407423944572575652L }, - { 6062827044520085102L, -584609121356896609L }, - { 1631754126980769139L, -1470461937317538162L }, - { 2155034312189437638L, -1211843219178899758L }, - { 4419389933864557564L, 2474123120380500371L }, - { -6212670054900830945L, -3283329040397730768L }, - { -2848281703253248988L, 1376655356872485794L }, - { -6545922936561011643L, 1663590999050246928L }, - { -604998998887059747L, -6404606806597906129L }, - { -8813736778885336452L, -9050067230254355096L }, - { -5028399912173153801L, -8181108087906772027L }, - { 2802315771636654550L, -3057409231249770497L }, - { 1359831828875761363L, 8335036989554482751L }, - { -6244291732477211457L, 6778429609948085662L }, - { 9138108823363225790L, -4965281868002262510L }, - { -5700703633273694371L, -6875741241266038885L }, - { -5189931767235375959L, -5872467238339532574L }, - { -5917217031437644153L, 6643339725428825001L }, - { 6559980057173897885L, 5549915138011177360L }, - { 7585954365066361941L, 3827417266074500159L }, - { 1833254434142522137L, -2975534211365301488L }, - { 2622798612834078243L, 880690646882639358L }, - { 2935894269140572959L, -2170847169010457533L }, - { 3342180495858759098L, -9026120371020346544L }, - { 7763655187214368195L, 140653358355510195L }, - { 608976619205971467L, 2680459468129440062L }, - { -4493083204513432310L, 29582863612308858L }, - { 5655458152670549588L, 1593207810406994381L }, - { -995372262620475933L, 2247666490547334864L }, - { 6725108152764242753L, -7925184458835945793L }, - { -4152678539161864839L, -2459707456071349037L }, - { 4879330012023732227L, 2141963663717599411L }, - { 299691067249437340L, 1396036161400977741L }, - { 8253082866296742941L, -8013096718656330446L }, - { -1349088245542024700L, -4461083559764567188L }, - { -930670635091392036L, -5798322241366770012L }, - { -6305033172145799503L, -3880395016914540203L }, - { 767676528758696723L, 1063272237810615854L }, - { 7848289152882068204L, 8909778499602937325L }, - { -5335123725692922309L, -6946127868897095127L }, - { 7618587959592606045L, 4634778821401009725L }, - { 1310623412826253949L, -8143415738254494696L }, - { 6105911509337366946L, 792001017010716854L }, - { -5132873445536420119L, 8072991014637794838L }, - { -5066374717991788365L, -5659428556859705023L }, - { -4196018003514359930L, -2960252077637016148L }, - { 4602399218983903018L, -7250042258597588446L }, - { 6996237050722228275L, -5262328436781830557L }, - { 4750432263399753517L, 1652612239899504274L }, - { -6552768219041772261L, -1285397640667162897L }, - { -8886514643984898377L, 3007652368209907553L }, - { 7353718498017818617L, -3719995466824510508L }, - { 3420752363982256164L, 5107602565903732791L }, - { -3106921624226184176L, 1168257018303839838L }, - { 7755185569018499850L, -3857145641161864056L }, - { 138048424823142520L, -8708777035055553867L }, - { 4574855394856311409L, -8338994606192096015L }, - { -797116754680671576L, -7236253372429516585L }, - { -6319525882248058891L, -156939084894516690L }, - { -7211292892013797268L, -8753827357192046412L }, - { -5969262208310571743L, -4551450243246721654L }, - { -2242517284471541983L, 8996152110754951646L }, - { -2134523085752830969L, -7495306502570748263L }, - { 5239925547316736378L, -2997846662183027098L }, - { 2211989170649079345L, 4552093064635424355L }, - { 3951874086467810189L, 606093338469391572L }, - { 1541713943974254342L, 5009388306382876L }, - { -5392854420512731723L, 1707913964447526483L }, - { 3564316510315168871L, 2357502818216120645L }, - { 2901564687206922350L, 4109787658960348727L }, - { 1540984989266277585L, 1126768316180128530L }, - { -5588692335575710649L, 6459331785501191353L }, - { -7656900483971665708L, -5215338425961743757L }, - { -1269975572006533380L, 3123164670370962323L }, - { -8586683894725424637L, 4575538545983245779L }, - { -667220377486025270L, 4838469292655308285L }, - { -6992322247305413343L, -2591667159733033943L }, - { 1020432414035508475L, -8985144752213736688L }, - { -762737570699341127L, 2010955117870916034L }, - { -4996438874277990597L, 5869624445205357912L }, - { 2399099134154679381L, 6901184743738376212L }, - { -7294753205977958107L, 2678158469636349061L }, - { -4330814694281211877L, -2372110554595119614L }, - { -3424505945178467498L, 2907272188222348819L }, - { -3908232167211290102L, -9086151270933909886L }, - { -1715708172189155463L, 873283929820174937L }, - { -1541677764411125216L, -6424898669918065646L }, - { 1443437733037296364L, -5161573268394920993L }, - { -5699613322350318170L, -4038288171429340078L }, - { 28422381221154018L, 8508868024345659079L }, - { -8448942739014323861L, -3172255279146427597L }, - { 94089349704640679L, -1872147708441883283L }, - { 3121324325667558058L, -2742049169245305954L }, - { -2027215282474423693L, -8633918446316412568L }, - { -9090860166446867101L, 5313050066376562140L }, - { -5570813680167514715L, 424079786412921033L }, - { -4433017494388855624L, 4758148122860548219L }, - { 7780214454833321289L, -3435318272110965543L }, - { 2818118075900140158L, 2464433363023169592L }, - { 7909566890394565636L, 9103865919125847740L }, - { 3281719552865083509L, -3221707456270358295L }, - { 2293428426098439431L, -1732177137372972119L }, - { 4831877444478608421L, 2348429429785960283L }, - { -8036810704178721498L, -9069577601784087655L }, - { -6696440698423871679L, -3085412744253133998L }, - { 424663572619708233L, -8999784711703971885L }, - { 2210379950234460182L, 1691623452644126371L }, - { 4488772831440475400L, -2961180662304531155L }, - { -6238973969104209915L, 3639242386345472368L }, - { -2892035378057749818L, -5319789022585455217L }, - { 1190083349888328687L, 3160160382664083073L }, - { 1900956434625552346L, -2284489391947536786L }, - { 5686029047839893831L, 2781250728673448714L }, - { -8652319297499303518L, -791865261776098984L }, - { 5660206937964935444L, 9092721539996400845L }, - { -5693798368774435246L, 2258836748989798347L }, - { 326881025455212277L, -8754085884902168853L }, - { -8376143443592681499L, 2999534153289768504L }, - { -924714482174160655L, -5379654820304465219L }, - { 2731102432407909647L, -8648442112932022073L }, - { 5974710608961653241L, -3581417371718541672L }, - { 6662943015421622990L, -6686424439719532742L }, - { 2629145426514230124L, 1947184247238363747L }, - { 7653779470428211936L, -2981000221623473869L }, - { 8231699528634814943L, 6477265731277391860L }, - { -7880485152483421857L, 3296436166418847848L }, - { -8715291256937697509L, 7836011376951354082L }, - { -2608260639142008146L, 6771078140290822120L }, - { -2891414416406033026L, -4301793197635600383L }, - { 1006672424561275863L, 2790898605915233737L }, - { -5345465745471823175L, -8188476658929014250L }, - { -3007098514343148833L, -1632205865341471381L }, - { -8853686550740270619L, 8025678435968917400L }, - { -8826799561287303533L, -5665941448030027073L }, - { 8800245871751669511L, -3536393248796535509L }, - { 565431636219131046L, 3503967908423474425L }, - { 6137897978460556916L, 91950916967717704L }, - { 5482308004417669307L, -8343102428410455164L }, - { -3006854606371770142L, -2624010453361449257L }, - { -5550863738981833513L, -5107086731935101640L }, - { 6860154257076535929L, 2122136767273906883L }, - { -7830408716033920139L, -8885954713952577885L }, - { -6220766884162806429L, 7016794589305787131L }, - { -3254641290637732033L, -2128471522653394358L }, - { 4069104293139053208L, 2152160035557905229L }, - { 1298727460612851492L, 5940452780843637659L }, - { 5145793087755505159L, -9004759719138398615L }, - { 4012194405015900827L, 6347510871907681406L }, - { -2096633266369036577L, -1498193343687136142L }, - { -235600124490809513L, 4988899018975547087L }, - { 2256248865523312538L, 6160266267729455349L }, - { 1856550792634706370L, -6501591819842837449L }, - { -6338437638663913139L, 5594380189312176072L }, - { 605690123879344699L, 5053237049864143776L }, - { -5972006707479557169L, 4785782695457342020L }, - { 2788841617850067275L, 8271282777966666049L }, - { 3341756482258277517L, -6056850609051651338L }, - { -8730087995322499274L, -7118156720511960164L }, - { 5666761853789513177L, 9188761121016073816L }, - { 1427855942817620030L, 4407328625609699591L }, - { -2247084578644277545L, 1708890129314508850L }, - { 2632056116244532492L, 4401923056661588294L }, - { 8983184113458203674L, -3136608526412251467L }, - { 6222824259917067927L, -8130597606013207234L }, - { 832847538082989274L, 1548428941129567096L }, - { 7408336855734508382L, 7776449749647396310L }, - { 2463234904146980715L, -3340268007978204382L }, - { 7616355816816829131L, 2303050254259962399L }, - { 5437320614714817066L, 8476803541903204130L }, - { 2176649963064497163L, 8869043259439175488L }, - { 7847964877858458386L, -6373057125165026464L }, - { 3676215252045438118L, 2204625982824682027L }, - { 1457265625453915305L, 1387291172404214096L }, - { 421670244665897930L, -387569155792122879L }, - { -537286355906412984L, 2487716427838425241L }, - { 845546777083974630L, 8893865741331650301L }, - { 6294586905906742451L, -4553937046340818752L }, - { -6979812383811440761L, -5140944992099214823L }, - { 4101166573373719960L, -3761343286476191065L }, - { 430647036995334093L, -2776276191091528330L }, - { 2563569094767382754L, -1570641686381817622L }, - { -2226117486192197040L, 1671878083856373830L }, - { 3989815455278220803L, 4052233204958035005L }, - { -5573460076032648378L, -57360737518556647L }, - { -5149764105493446507L, -5658661468258761908L }, - { 8908023797302087394L, 8118348247591337103L }, - { 1579875413248797693L, -7026389577366674812L }, - { 6557085398158756277L, 503776811517866907L }, - { -1860582499397819682L, 5110024206261509272L }, - { -3940264269551745098L, -7099666907393494587L }, - { -3760050418257691649L, -7345481607428632425L }, - { -2749137550200198091L, 4331101412580103856L }, - { 863749834414320446L, -2373778346862397644L }, - { -1701674908797410602L, 4970046037650428460L }, - { -3441531459858237116L, -988835857524290763L }, - { 7781166611943523849L, 8140634413685909259L }, - { -8747694838109223765L, -3156431890675712017L }, - { -7940615954936651322L, -4120870388273929951L }, - { 1761800111692886098L, 2547288411650164556L }, - { -7563608795264216209L, -4847926844762470820L }, - { 2430120273101259962L, 2177062838677564347L }, - { 3034607409190630193L, 1981874097468871768L }, - { 7596606678605264709L, -4288556630910272875L }, - { -8815959038019965324L, -5980112834322187096L }, - { -8056592803858661736L, -7052224712096695046L }, - { -6054319005531061432L, -9188489342513555697L }, - { 7637990614259037480L, -1415221593400472327L }, - { 155762651336866309L, 5657149807227102396L }, - { -5295066003461610118L, 6870728820605999153L }, - { 2097996021613363354L, -4931700889553602696L }, - { -2649318637576910563L, -6978908410517853058L }, - { -4710689453059380010L, 261449222883509725L }, - { 8675276565266944323L, 335351249952568394L }, - { 4061820304631504890L, 5804675661865029248L }, - { -865251409507836874L, 4577923466145028915L }, - { -4305544705996842550L, -4883326217850566724L }, - { 8133733737104758782L, -4495263459386364509L }, - { -3599082219550900640L, 5219535324240806812L }, - { -1172444168425884022L, -1485199996039546317L }, - { 7002178848795582841L, -5188784964680065467L }, - { 8753574524527561837L, 3919561486790968735L }, - { -7959972011549631263L, 8799060198670636386L }, - { -664335750987460129L, 3277903706972742930L }, - { -7761182775497779250L, -6310116907364982155L }, - { -201978935828898840L, -4696042526673297367L }, - { 5748605939155571413L, 6791894953965220475L }, - { 432959146257511060L, 7202022074150088516L }, - { 8597688997048592708L, 553712398347581549L }, - { 5979346454620003082L, -1716068746879028522L }, - { 6682666834922578474L, -8712532151663695231L }, - { 3635671342630844084L, -506639358181173636L }, - { 8295581682942403968L, 8983503375557227249L }, - { -6056716329065906860L, -1166637647026189798L }, - { 4876232349596700627L, 7615893510850307496L }, - { 3282465211073936357L, -5416752951469934982L }, - { -6277210138874800012L, -614708101837670038L }, - { 86063810903062668L, 9159828528959232073L }, - { -5131034425726984549L, 7387887681768229166L }, - { 7879994284944917570L, -5715373531508598047L }, - { 3805360137603820244L, -4830043112173673655L }, - { -4819745855255108901L, 3483810877331937366L }, - { 6005083603591253720L, -5557974655706376774L }, - { 1260872260703386533L, 8098831063630607951L }, - { 6208805585589862489L, 8877979288513368898L }, - { 4467145362283493250L, 4374169585767619657L }, - { 6925593199187107448L, 3955240828481560781L }, - { 2290814776012496288L, 4042584658561538346L }, - { 2202094536385319447L, 270484628403474813L }, - { -1583289128964920170L, 8120175710315470278L }, - { 2414314858213839292L, -1548161289658943137L }, - { -417375850490384234L, -7625678914308549312L }, - { -6775757096712023859L, -5214376957868732121L }, - { 1531877516325565400L, 1211163938547556009L }, - { 5092160435195199211L, 3684528669792750192L }, - { -7779989257755281504L, -5375772666913524545L }, - { -2910324314591098862L, -8416001170794441872L }, - { 8497090690994716777L, 8540791444836079312L }, - { -7802963550632908400L, -3467583003730778096L }, - { -6411284901845568322L, -941537897448291129L }, - { 9216337043421866495L, 3078985572433750012L }, - { 2437859992012674232L, 8179548351840095050L }, - { 6960237011186167617L, 3869309237547749624L }, - { 5100162418749277386L, 197993277396624937L }, - { 6509562170805894274L, -7367535593602185533L }, - { 690433361758303077L, -2806827680050805430L }, - { 5936816351771558334L, -4582124194561143228L }, - { -3601277060469993805L, -4565171460269252905L }, - { -978457311807747406L, -610254066917434504L }, - { -4420940034475608949L, -1856703055424341426L }, - { 3538644062391991755L, -3712271897739197104L }, - { 5164625733904685628L, 2650674255718769837L }, - { 192170982312183453L, 8633644357164644119L }, - { 5014044649793050646L, -8449200459845048042L }, - { 9147945450485230993L, 7810322997664288811L }, - { 121096778422978126L, -8652535562468380297L }, - { 7076446543359171313L, 571454885249581704L }, - { 3849792111065500559L, -8026540109779588702L }, - { 7235530029899206334L, 8515508725728343766L }, - { -6832803917257794399L, 9113172911670130481L }, - { -7448095328943903784L, -4562750453653683636L }, - { 636249030288914450L, -3970829186127658086L }, - { -5837508951408640620L, -7257939566854180158L }, - { -5494182545899908814L, -1345600624398540662L }, - { 139946096999437232L, 4142244339380738758L }, - { -7949772735307966448L, 5282219938929552231L }, - { -6777152677072204821L, -3004773806496786336L }, - { -648210928302263569L, 5511623637819700198L }, - { 1484711477581900777L, -56114059663856821L }, - { 1415763754612838143L, 4543528953784949698L }, - { -107058891244037140L, -7147306030921621952L }, - { 312958362296582989L, 3898297632297745077L }, - { 5071518533113132226L, 1938464859165095339L }, - { 6638935098145563092L, 8586698480642519698L }, - { -2867055004276813534L, 174277963774089138L }, - { -4289503497262086936L, 1793561870758663485L }, - { 1497170552728782805L, 2281434002035931012L }, - { 4517675483628149735L, -4299142910986295506L }, - { 3748960245079903666L, 6886847500671830300L }, - { -3691286664879128054L, 8872754919310633948L }, - { -209359184536764749L, -976043877717111761L }, - { 2491341916818449085L, 7267445614416492980L }, - { 5499205217633027745L, -3961171019363316611L }, - { -5512709448748519671L, 5362278415169786706L }, - { 4557913818063026938L, -3160011354686081538L }, - { -2112204135968966196L, 6310834969212348187L }, - { 3440403110217462895L, 7953765169956192669L }, - { -5867323792132309155L, 3117237805613135061L }, - { 5420869064478055006L, -5392284491101207136L }, - { 318512041709141078L, 265910602706848173L }, - { 1057553941897233483L, -1301783428765645447L }, - { -6895197562631981270L, -8197304699761768758L }, - { -5782743651675563936L, 4203332157031714086L }, - { 2659771847560443960L, 6759308237310585353L }, - { 6592601119187496548L, -3454010220224502424L }, - { -517270229881128849L, -364112620296853890L }, - { 2622604378506727519L, -1409475428244174294L }, - { -9170205866690625639L, 4114695014291468489L }, - { 4806630682514823179L, 9059429146023594378L }, - { -7776613972641981358L, 3810087764460194646L }, - { -1488298548028258830L, -3810270104734245156L }, - { -1715707210842296824L, -6915036138510998600L }, - { 3796221982870729299L, -3736370821310651114L }, - { -7882722580553373597L, -9000164591921300229L }, - { -1797548791879939131L, -520599612811393613L }, - { 9223079908042491188L, 5543904114523917201L }, - { 7847548061281742781L, 7166650075853579796L }, - { 1041148225166463713L, 6331269772201105184L }, - { -2800037601895587534L, -8408921437830061596L }, - { -7832361151307182116L, -8213348400415668450L }, - { -6950576920927850414L, 9156154939542525814L }, - { -2404378656089204258L, 8395455743286852626L }, - { -7720362412660524651L, -6273166454579708948L }, - { -4901646243176144926L, 6990772751632948288L }, - { 6432612866296388591L, 8548483255730797324L }, - { 665821462715291984L, 3350164667765855444L }, - { 5024465184664377182L, 1965564049852144627L }, - { 1558901948449801231L, -6446969132709976601L }, - { 2224934457550741787L, -7696287661468022291L }, - { -1486153720652331467L, -5605157687169082L }, - { 2152321067003602002L, -6321249259252955228L }, - { -1858128886354189097L, 2836979244920552810L }, - { 2873839996181438535L, -1072878112229444552L }, - { -243875524287970697L, -8348021835701218012L }, - { -1376873654537129986L, 5423661924194360191L }, - { 3287122656145633441L, -4945767931773080995L }, - { 3770833946582728674L, -6420894115027823771L }, - { -2764900700916121857L, 576336989324501846L }, - { 2560091717993161785L, -9200720429015878735L }, - { 5504786539926877426L, 3159208667838467515L }, - { 673505854315501819L, -4598137714685779284L }, - { 1264431652537758499L, -3814214474280468989L }, - { -5043418235491208409L, -8838500318471721555L }, - { -6769065002135856586L, -4166893156663053601L }, - { 7666088207808456995L, -5995625777871569960L }, - { -2827685615289224220L, 6872228841331280864L }, - { -5429383711816435171L, -1797075711309876153L }, - { -3134385201210164932L, 8882919297953772994L }, - { 3020879270457681824L, 5883876757118434219L }, - { -1689344584352272080L, 2437110626722923896L }, - { -9040930749904066060L, -5686175033217931543L }, - { 1932280955101101310L, -7158452945023483021L }, - { -4992572509975070322L, 3605164471112944705L }, - { 7546307129163923078L, 1170266758393999726L }, - { 2939073542428222766L, 7243081239066082528L }, - { 3374974368464231869L, 4928464298223439682L }, - { 885759554366311L, 1057459879878233927L }, - { 6593789636519856798L, 3419649136379989479L }, - { -1624132412418983395L, 8841047325915716177L }, - { -6031359656290740003L, -7488614225440201697L }, - { 688983212618230553L, 7643942002760146514L }, - { 6369052776794949918L, 5195382242098812706L }, - { -1377714920269304294L, -7175744776460667274L }, - { -1057940749189840506L, 3173893418895238573L }, - { -1655685782041312329L, 8477574094088335615L }, - { -110552080942842283L, 6888964814479005121L }, - { 5250633774704933933L, -1012094598554766112L }, - { -7909648255758272745L, 750427027426622638L }, - { 719735976337939580L, 5536526334688791531L }, - { 3645906512854567933L, -7728442844606091261L }, - { -1860978834085668115L, -7760720380835662111L }, - { -4349804709624489457L, -5819810209764985071L }, - { 7923661347327064185L, -3310448936111974933L }, - { 4244126846532735429L, -3815693592766389559L }, - { -3251399312816082643L, -834497383696947436L }, - { -4937029742581158563L, 8540913837129171901L }, - { -86298941439722272L, 2057540199751740855L }, - { -8597913327563881758L, -399644259762704239L }, - { 5039882027531808464L, 4551460786448379682L }, - { 8056647111062079524L, 3681777671216768037L }, - { -8976752115766926062L, -1802538985705148169L }, - { -1690394607348932339L, 6687318080944374988L }, - { 3378746565484573129L, -1751049606407600190L }, - { 8416003090844044193L, 8135905036230225311L }, - { -2717024430934601010L, 476006231892774594L }, - { -5701892799453780386L, -7173369616685818959L }, - { 1533981283496523540L, 1415291852685422332L }, - { -7462371343115417598L, 724626787697510043L }, - { 7010080256761797460L, -6150362952056456046L }, - { 4478373719647299143L, 5614140616738834163L }, - { 6305458678328463570L, 1122352984194175602L }, - { -5102763036459098393L, -3460352410086041434L }, - { -8778795989564198209L, 1473095525081521210L }, - { -2268889645684651974L, -520070433989938017L }, - { -4555916510323499535L, 7868968266585745421L }, - { 9065546065927673888L, 2823910101848922501L }, - { 5852839483910534806L, 8258588543522383098L }, - { -3402482240912256878L, 5952804005743627668L }, - { 2023722994972298169L, 5047124578203526567L }, - { 5215407550830003324L, -7830002530699043692L }, - { 1071468158469513836L, -1387799248150086883L }, - { 4955237436537987038L, 6130712479065828415L }, - { -3083989516400027076L, -3440784742149283773L }, - { 6722953813435001988L, 7245745558256024155L }, - { -2387850610416371552L, 182889665412283505L }, - { 809463730078568982L, -3696936559309597459L }, - { -5395203458608056891L, 2087371727619347819L }, - { -6137800097014878795L, 4809155221582786735L }, - { -3605527194936796968L, -8423052822282325387L }, - { -7589842792710116365L, -1533558859642065869L }, - { 8069067842420108257L, 6146489394975412119L }, - { -7454408306272078350L, -6915650351892414953L }, - { 2339188701288559996L, 8366379791959321561L }, - { 1008425726458324286L, 1620671620409236365L }, - { 6847676052807732318L, 2526749850075238275L }, - { 2271618337058209406L, -4170988020785076096L }, - { -8281033180921892670L, 2863917946175752856L }, - { 3604010165737741236L, 195804067905468237L }, - { -8269928557793008073L, 7207781055493994186L }, - { -447391999287823556L, -9188774064725556020L }, - { 8028984830780334836L, -444320022784399848L }, - { -3883350805508230356L, -1370082197650851272L }, - { 7482610679805814070L, 6054283912748538683L }, - { 6500112572029535883L, 6338212483365391701L }, - { 6119648543352512696L, 3731537194623523994L }, - { 6922212850686981745L, -7742260474253244859L }, - { 1734731947537567857L, 4227368981582034582L }, - { 4101619546129582628L, 7887200240021237190L }, - { 9155049639883886519L, -1574685774619907419L }, - { 5849304319215085011L, -5149097089656706460L }, - { -135976101808023055L, 7657751254514616451L }, - { 3329888204068201272L, 7691678257579801957L }, - { -4336188293967075047L, -8186810994473167457L }, - { 5788433959497374483L, 6005512947764583078L }, - { -1402363557578146821L, 8843112555146557492L }, - { 3588707324813677961L, -5917534281938487150L }, - { 6715232528053729851L, -6811917543979770904L }, - { 7169368150013526008L, 7113541687945298083L }, - { -8706746826857587245L, -8859511146642304604L }, - { -4819316543846777649L, -8774395764301925696L }, - { -8782313301067526525L, -6256596613929059099L }, - { -8916832875484128383L, -3111869372017071369L }, - { -2346600299358242263L, 739981548130115109L }, - { 1904681875169970567L, 1284498147074753190L }, - { -6704056743702639344L, 1025608445943185924L }, - { 2270605299750783360L, -8478634978958397732L }, - { -3940808304480228961L, 3620857268219366074L }, - { -8321565943725548488L, -162850665073338121L }, - { -3825742229541937514L, 5414988189270570764L }, - { -2349339074190735472L, -2520219757190524321L }, - { -2948486946206330984L, 7132250433295718412L }, - { -747906506207273746L, 8982940781026329670L }, - { 4280562720015859798L, -7158609942006274217L }, - { -4136257343808753176L, -5732481356090503243L }, - { 8445283324198191059L, -7944752293528961989L }, - { -8404850409602104913L, 7482965433126677L }, - { -3264457032343850047L, -3720438713954588688L }, - { -8759790595969078254L, -3181246708414873404L }, - { -2542190711281684773L, -2502711101698706266L }, - { -8843544063303913454L, -7592618515347100726L }, - { -4003746482399952206L, 3328250037536419347L }, - { 3841695822551400168L, -219582959475083627L }, - { -3588090911679720182L, -3174750020272651302L }, - { 4918585626351510199L, 7130806503895849634L }, - { 9222791837897484065L, 4011402744232032199L }, - { -5760984091213555378L, -6810121545918367515L }, - { 2491736142884395009L, -2597704284285157495L }, - { 9176699063949977552L, 8988486530696185155L }, - { -311336022868801049L, 800635164334809333L }, - { 6098071943696363607L, -6466386586993453102L }, - { 3781539988474542156L, 6252107264141468479L }, - { -5991444272878304549L, 5960563247743610665L }, - { -7058079929087833240L, 1774151115106864258L }, - { 3692880174470651745L, 3254087094804079517L }, - { 8043184184871662514L, 4334626677240459902L }, - { -2260533056334755470L, 5492216609821364730L }, - { 7862870576355526775L, -2002206651704242317L }, - { -1273628657555198089L, 4500092611531376016L }, - { -7116245059732632210L, -4469253241056826606L }, - { -6206223953545513505L, -1137760425047663752L }, - { 8769478588548603347L, -132736367177684309L }, - { -6809293819712164844L, 6559633909609042117L }, - { -7072037946451047577L, -2043337765421332833L }, - { 5145959967698376997L, -5556603267559213848L }, - { 3918549975422395928L, -3150639278327240429L }, - { -3688153306502628396L, -7435067995008483219L }, - { 8933640809529662946L, -7636525704905354617L }, - { 6586386948093068301L, -2183803246532017685L }, - { 4314174515802583045L, 6291721688596346087L }, - { 6042832017761248999L, -3695077737345263355L }, - { -2163096650317259801L, 2990268501997122182L }, - { -1301538385158714097L, -1533372430915700352L }, - { 9157628132063555931L, -7093418936861363878L }, - { 8447192224483369575L, 7631934447862654472L }, - { 1082300847283178879L, -7618647624807771192L }, - { -8765613093828266962L, -4115536092713542768L }, - { 6523561351628630699L, -7625252301278642487L }, - { 7878456944142132573L, 706194176774617761L }, - { -5878800239136723413L, -1813927820728650739L }, - { -899016955838748566L, 1966176815632465191L }, - { -968680680108344572L, 6575369511440091617L }, - { 8149351788840205925L, 2279025097486125117L }, - { 7767149159758237380L, -2644414571334647023L }, - { -1002433668001324671L, 8943147725619352276L }, - { 861378480610089679L, -4062600348246113369L }, - { 5131370442347562734L, 3950723299875471224L }, - { 5891997968737511949L, -7520213123221654021L }, - { -1134130780427583438L, 3132292634573307295L }, - { -2721284507442384384L, 7291597149098083522L }, - { 3581758406053663578L, 8835208245303410746L }, - { 4711959109881063237L, -3216119409741833809L }, - { 3814833207703197149L, 2734095307747491414L }, - { -5498755072540800142L, -6403288850279922865L }, - { -434194050930099095L, 4870237253884783459L }, - { -1131324138179189444L, -8321037353987256979L }, - { 6335673834129040499L, 1542550554552373587L }, - { 3840591353873435091L, 1003968243768320782L }, - { 6691477876637098998L, 3119531155265220843L }, - { 5389042814799436488L, 3464320519030129292L }, - { 8492537662085986759L, 4231665252183762049L }, - { 9801065220990358L, -4142253103916332351L }, - { -8991404774454959964L, 9117831577731702999L }, - { -5967334022174632862L, -8234653634853813963L }, - { 8423499844379835696L, -2296526801518540032L }, - { -1121320485100692308L, -2310012019292148394L }, - { -1137347326607533713L, -5910223239112105014L }, - { 3579131621253541604L, -7873288377384430404L }, - { -949637496239973913L, 8992721473934662726L }, - { -845717236495377944L, 1709210005757310121L }, - { 2627652869211543871L, 6229651575357526528L }, - { -3584273871358543803L, 3485383832684950691L }, - { -1231456733798526473L, -3693492293114660562L }, - { 6404279318428525466L, -2820264389343755942L }, - { -1959366387574498651L, -1999053094523153109L }, - { 8659995475649499110L, -4063188751398928642L }, - { 5687743493891209750L, 1819832997765820620L }, - { 5734157541830063944L, -1508187435145329543L }, - { 3807145789061111632L, -1163040392176574106L }, - { -8728883033962465130L, -2019265592238841800L }, - { 1886310705344218044L, -2186164004798954561L }, - { -2869995344352648369L, 608788407759231159L }, - { 8631433038774110827L, -8954043830652495539L }, - { -5196628823587587974L, -2249354261523167857L }, - { -7457206590006693637L, 4392495756732760488L }, - { -5287470411743602489L, -4602133066126451655L }, - { -4100864542827687276L, 8617323110060809504L }, - { -6925193246164904686L, 320293241076880811L }, - { 684773938147799771L, 6262050439533780321L }, - { 4684480184200832071L, -8091186757996198319L }, - { 1138521418475557396L, 7915368755744488159L }, - { -1024452235617887100L, -3320296128152795536L }, - { 370178077665262107L, -9162241114040089547L }, - { -2580904250658458088L, -281987854585455375L }, - { -4067270455265760110L, 3697740925622419951L }, - { 7883457924958258236L, 3225018098591163689L }, - { 2745236661071909096L, 8184485281086465192L }, - { -6638753008619557401L, -8598931368792692359L }, - { -1928563245103591922L, 4655096611975500707L }, - { -5391677730310963265L, -1065175718193252042L }, - { -3443398620200795730L, 3828176865585432313L }, - { -8921877650888014333L, 107866992902620257L }, - { -2549654053467481876L, -5050580673000189621L }, - { -6634007310328959288L, -876193222819744972L }, - { 6662969652277689957L, -6841284783697750392L }, - { 5704789109069509625L, -2476715163962031661L }, - { -1307333292330657763L, -5491692411965571232L }, - { 6533595699848914839L, -4499350589304206086L }, - { 2206229619406776067L, -2351165617492036434L }, - { -7059181012292774208L, -9115366817762017529L }, - { 8587013829275411963L, 4388678051800734512L }, - { -3759394797281060169L, -7053509092813615390L }, - { -8332558387862436192L, -6896020076406818425L }, - { 4058454963111191922L, -5286761064255899376L }, - { -2909318126609562718L, -6911874830505973438L }, - { 8309425769040304384L, 7849379961650314497L }, - { -3332518656544710523L, -1692848726219162872L }, - { -53840526904216763L, 2255977371922379760L }, - { -4392299612463469408L, 1581073356587586804L }, - { -6495163012164872108L, 2231393466511510482L }, - { 8283822043324591205L, 7499731676314211199L }, - { -3839429045227492113L, 7510349338395860967L }, - { -4554258591908844950L, -7317144759563080195L }, - { -8717791527048532273L, 4978792217011582827L }, - { -6680294812840082731L, 9152312282907380651L }, - { -1514076315369906827L, 3598370015785027284L }, - { 8342331288999106348L, -7203007516130555934L }, - { 4467472370913596089L, 6812568540862734900L }, - { -5258687569970231267L, -355677718169180333L }, - { 6428083210523097473L, -5287418510282857745L }, - { 2293947403016663486L, -5220278527068998730L }, - { -5526361602248141114L, 7996660119707051676L }, - { -7270937093961275072L, 5711622628080961541L }, - { -7226206738482320242L, 8598438917671031500L }, - { -267988759137059367L, 5431685311506687936L }, - { 3757842653020528703L, -3297692481111911080L }, - { -654142607214292501L, -2962827219142864971L }, - { -3877320323095024097L, 8842445126378196396L }, - { -210352008325460011L, 5116823845142598386L }, - { -3777353653906366683L, -601473431267226149L }, - { 4104559760354145145L, 4701224169495508799L }, - { 6351620637332827086L, 3205977800898050414L }, - { -3953047538968937343L, 6276768727993298797L }, - { 1977509989365985520L, 6409342957977133586L }, - { -6096612777648073834L, 6707983202497286472L }, - { 3655449697279862217L, -2885904157317690348L }, - { 6371929595416244955L, -6982319672407259043L }, - { -6719663260573101322L, 6074544765480824486L }, - { 8235058461435871026L, 7218535018958732569L }, - { 8223610568265677874L, 5036593928131829216L }, - { -636776168225445543L, 7126947243644292165L }, - { -5658531495972000806L, 5976061545413357422L }, - { -1315157075774308702L, -3587640206384793862L }, - { 3318184564168373738L, 3667606843527529680L }, - { -3870791042207323999L, -749752759518101873L }, - { -5761074459524531162L, -3904416599422058280L }, - { -7589695080417675674L, 1298670570171716776L }, - { -118243652515378968L, -4089007496976104453L }, - { -5606050504941145854L, 3363647473385925878L }, - { -1682232575263053834L, 4346070814778364812L }, - { 2064607730151462051L, -742205065568789939L }, - { 3860046528687723210L, 5639663483838395500L }, - { -6935238833286905572L, -619950249601147230L }, - { -1526898475961616862L, 8069505502923900297L }, - { -7786760789279579722L, 1492861118173755697L }, - { 6367271805286224450L, -7496769528088253126L }, - { -4333115896551664911L, -821727603931953051L }, - { -1229178972379399952L, 8730035857323100178L }, - { -5406430689127328314L, 4231658348135315593L }, - { -8536830855104540258L, -6071104864716272619L }, - { 4592858633504932985L, -3006733148669100477L }, - { -4661004590562426651L, 4357632356262471192L }, - { 1900079872513330236L, 4716191579745290515L }, - { 803518532278716272L, 3567557066091193813L }, - { -7227731911919645710L, 2095640250881819683L }, - { -1531800249475624901L, 6537531379212203782L }, - { -5068571120099635260L, 9060033697476709270L }, - { 6954901733800148115L, -1674928158449299724L }, - { -7075071323703859828L, -79790012159247464L }, - { 1447978964456769515L, -3214394401554340995L }, - { 860006115119071319L, 667210893626893467L }, - { -2067420548322589555L, -3021927277418583328L }, - { 4638996254844315967L, 8154077006989858919L }, - { 6983236581726963935L, -3528830910837705182L }, - { 6708882819304554132L, -5694112128251960949L }, - { -1077037295677468865L, -3503242918302157372L }, - { 3623478619549261514L, 6180056827434419475L }, - { -8551083693862102837L, 8556339763668418694L }, - { -6864926796047150583L, 5028306725838573487L }, - { -5583309839740166644L, 9027564656608576889L }, - { -2047952294766573645L, -3095287403842609759L }, - { -1296070923862863512L, 6790190055329304693L }, - { 3533321735634917235L, -9033799480884432612L }, - { -1137358684259757076L, -6356732617214670827L }, - { -8080333153054443456L, 3334370468254151878L }, - { -6770927466908143968L, -570402506200030937L }, - { 1677314511582577698L, 1342654560043637898L }, - { -2630259631962080464L, 7385442738096893062L }, - { -1793645900673563419L, -1723552778901560418L }, - { 3600237620008462975L, -1202654027148639997L }, - { 2180027379579890660L, 5542738931909800056L }, - { -9043677058766520350L, -3326672003520699872L }, - { 3962397017521642626L, 7663197079112974029L }, - { 3977072778934081031L, 1443754962703183004L }, - { 9036155278583684186L, -511483942672047429L }, - { 4719201700299004978L, 3372713474180665433L }, - { 195773270223425425L, 4606867324868612441L }, - { -3391740091956199499L, 6977786383238923035L }, - { -4297719063714682956L, -5205502438632599866L }, - { 2518769717461479967L, -2278000373378640850L }, - { 5163274893178164221L, 7720801366773322067L }, - { -7935837524015792569L, 7113479099627093520L }, - { 3725316512735597929L, 3063198825928438389L }, - { -6062355987398187561L, 196981839523103554L }, - { 5072788521812186052L, 2181699064151082790L }, - { 4756745374124465344L, 7250108599025853073L }, - { -6691048140593722302L, 4415088046869436277L }, - { -4453427560142816958L, -2106924769861351639L }, - { -8908616043104241784L, -1019376309451773039L }, - { 4680671232907313257L, -2174697625835016191L }, - { -6131724261229112714L, 7856591897252847779L }, - { -9108450687466015537L, -5507621728320366418L }, - { 6365495657268753375L, 5450431121738155020L }, - { 6448165814018765014L, -5612695438889065911L }, - { 7071162731007451983L, 5392474098323048148L }, - { 6828906714271770482L, 1502254970953831345L }, - { -3559294295246311028L, 7553612275548812830L }, - { 124771238363526084L, -4798796425975932412L }, - { -3293309753712400861L, 3954573374209069808L }, - { 8896706306255876093L, 4253298990076074483L }, - { 3125408161217615213L, 3803700255679029945L }, - { -5861463414798312654L, -4098195255457814724L }, - { -9036260382640522754L, 6369652912950273493L }, - { -2941595857477708459L, -9113821633105909829L }, - { 6033142563060557598L, -9020580934062204557L }, - { 1099630200403990563L, 696624502470685602L }, - { 7959429886791854178L, 8452651730508924913L }, - { 1535421567087429521L, 4681006148666640475L }, - { -3523681894692531197L, -7132650741735849542L }, - { -3906144409472427412L, -6072298972533296356L }, - { 6483996772781688720L, -7756906715255122537L }, - { 4132319255708563987L, -7604430518775079159L }, - { 8769726356542128993L, 4800289188839276316L }, - { 6738613111825331757L, 7396330301554136907L }, - { 1764580723100293334L, -5184137923839863797L }, - { 3299019025645495247L, -8319517036261810990L }, - { 2239605653730261397L, 154189014771898002L }, - { -6200467116936956633L, -6568202627332369288L }, - { -6291344345384672622L, 5354839767793808953L }, - { 2565928296401167337L, 3115419636555194066L }, - { 5329865919971566807L, 1719896645598205708L }, - { -8575034623756510146L, -3669000039462402717L }, - { 6368322753797090715L, 3689449136956819472L }, - { -7493350249074734851L, -5214369489577428826L }, - { -1948050475401750220L, 884718130935295239L }, - { -2542388860306602080L, 999643815495444354L }, - { 3132812952361473979L, 7117955964821677830L }, - { 8662503282931471374L, -949428191468665471L }, - { -7226118518078524751L, -8133317924985805656L }, - { 125513287940370920L, 1139709294781544858L }, - { -7105850358401444205L, 9011130779774299758L }, - { 2873891704788790693L, -3345408941392632050L }, - { 375644362554273808L, -3940052809605950557L }, - { 8779595029680158187L, -2090878506281834613L }, - { 6520575959918535178L, -3685955938622260911L }, - { 6481335563279395683L, -6651860608291596670L }, - { -3958324538875210597L, 687933001376263703L }, - { 2650332007800900579L, -3820496251684255429L }, - { 67216421894692841L, -6273923576662698622L }, - { 2892388889322576563L, 4142472054827014174L }, - { 447031742152452522L, -5750532076318905239L }, - { 2214867384342611779L, 1438016221944253759L }, - { 3463418430384064877L, 7933064097770090377L }, - { -6736581145771083272L, -6636037761993868041L }, - { -3097757825887262572L, -3464203236850017330L }, - { -742646863032103227L, 8549751377962719435L }, - { -675900178715113798L, -3914104413182363973L }, - { -2232567950500061233L, 7621988165391726384L }, - { 1712025609374863027L, -1123006467158500535L }, - { -3405265351896222950L, 1430535721297212626L }, - { -7357424915587192954L, 3465717092902363839L }, - { 5899042778652661141L, 4222684223013113017L }, - { -7187291342974761805L, 3957487962438616817L }, - { 3480937052474976673L, -6188589281798830120L }, - { 997099418044934990L, -1527963556835294545L }, - { -2839517833272115276L, 8330879031487323662L }, - { 8199436817352462608L, 6909954963993252775L }, - { 9072737280134851879L, 5188978806423418359L }, - { 839795799971829718L, -2860958804774185917L }, - { 458252816075262707L, 894349972574391694L }, - { 3252541827624060629L, 8522714392424847611L }, - { -5029727353658396637L, -5729345024622710002L }, - { -4967837872862091654L, 2804097617713186103L }, - { 2146776628928215216L, 7992918702582258237L }, - { 5403743629243841306L, 9019714016234030597L }, - { 3306799506878402965L, -2944777525613883043L }, - { 4468336141473957274L, 7689803402328019980L }, - { 7023113564987990226L, -5353349038722192959L }, - { 2871980174971968592L, 7052062369586092648L }, - { -6665846774723588486L, -7779984816814418003L }, - { -8521313230784523850L, -7075872948858809038L }, - { -2899150205599417383L, 3674168194855920925L }, - { 1992195265166010323L, 6718020075048606525L }, - { 3610880564010872990L, -8099380986026829265L }, - { -8962461672227066573L, -2708938433802853784L }, - { 8499793696703179099L, -117949552342789801L }, - { -5174175353166984262L, 4853488592908239062L }, - { 3773412144378555582L, -700152485305099197L }, - { -5377488598550438958L, -2221586125998783654L }, - { -227481030440141534L, 3571021169253497167L }, - { -3003034596327281460L, 6483608774262579967L }, - { -6010571883582226691L, -5383121100451058218L }, - { 5285640267764709652L, -6202879186354479067L }, - { -9094570939029139554L, 1417266974034045473L }, - { 3302183665375964446L, -5089891447239173791L }, - { 8185803481915750000L, 5860584065404731072L }, - { -7832879598569001202L, -8462546539915269894L }, - { 9185495476894972675L, -1418057708833821013L }, - { 9021601549322560342L, 741355604462128395L }, - { -1033483127041468323L, -1998905022320810358L }, - { -9094719449194039442L, -1626212808185905243L }, - { -4246271926877732985L, 4840812948897464736L }, - { 5329679602094503622L, 8649093324893765849L }, - { -3123609535190446287L, -361284439372155099L }, - { 4714766142804686442L, -8136402947598538231L }, - { 2489307805887894890L, -2356444220664306215L }, - { 2987790131896782326L, -8086179668000672928L }, - { -2963677483725852236L, -2516942748088288718L }, - { -8529934738168520503L, -3210310985686262182L }, - { -6356353435089583010L, 3516503088278819063L }, - { 3208586395891790363L, 4298931398837050951L }, - { -4407123126725047459L, -7765163037766468949L }, - { 8157441934654253916L, 2843614390491890044L }, - { -6109838368688820127L, -2368186650405422497L }, - { -4389983853453341623L, -5397592659600112949L }, - { 7652314184807664343L, -1427196053527089690L }, - { -4662723430367132038L, 120770956848949739L }, - { 8667093623786488993L, 3070768203499473269L }, - { -3415543420133275181L, 6085467894486731971L }, - { 4904278838452314694L, 6548926713722044422L }, - { -4354230232880600982L, -3272993024095048366L }, - { 8861799057857753L, -6094996369966286538L }, - { 3552811093870745879L, 8612973539161157048L }, - { 8634119875383707854L, 1907947534981169433L }, - { -2732631755040740128L, 5182756388090293429L }, - { 6518885727185543342L, 3116634721078149894L }, - { 4341137614328678730L, -5388034631040110769L }, - { 6793266319858946131L, -5418120590775304922L }, - { 8047455342123276414L, -3727261839997080006L }, - { -866422210016420449L, -8852169901685222689L }, - { -2975253122827530056L, 5453714651394251460L }, - { -4030176003307022576L, 4842581852636998099L }, - { -4241696461887318612L, -3800892415646682874L }, - { -4753266504739240553L, 1412187783702418413L }, - { -7373316743164657129L, 642636635356175384L }, - { 6048513984860600758L, 5869299884640974771L }, - { 1814258330875604106L, -2878806132566885503L }, - { 9109940689954894985L, -8812562607906103198L }, - { 1579558970146774347L, -4017510485008247124L }, - { 668478211668974619L, 6320024829637634074L }, - { 8409518560944185002L, 3353220582345848116L }, - { 7245729396754890299L, 5588396973718419901L }, - { -5114268398654367847L, -5944423628815401655L }, - { 2956616124692577442L, -290106912204558888L }, - { 4461886846778383058L, 2277783397013987244L }, - { 959690196566065732L, -8814538937186889982L }, - { -7235204044940286838L, -8189358422666028931L }, - { 7981158344195854661L, 4867006782544055533L }, - { 1833698125790755138L, 6523032353281179181L }, - { 7752754976810456477L, -7282290980488591008L }, - { 5692118834710835902L, 8632235045305762587L }, - { -3793683786453929372L, 2693475423544308135L }, - { -5581772364636870855L, 3928278557991189836L }, - { -7470774962401733293L, -8446516023329576894L }, - { 8780664591724430174L, 4286197667128074328L }, - { -7663125741516067028L, 1559881424666449109L }, - { 5829471574991825780L, -1699504516976991348L }, - { 1182333455500273019L, 5353082458342633232L }, - { -1726270951016459467L, -3454492226798936731L }, - { -2746428321520070969L, 3021238741736368676L }, - { 6832833992125314751L, -8702581179293653579L }, - { -3990613509805030555L, 8667205036761326617L }, - { 2400486545587757625L, -3000524943838505376L }, - { -6598170744898189777L, 2759511703193262743L }, - { -1995198747364774857L, 9008233307559279188L }, - { -3645842663215618557L, -7385147240487509438L }, - { -6553956802949933979L, 6965354958414743421L }, - { 363585666263112429L, -4882210177421749025L }, - { -5656547416142849554L, -4050177253764422541L }, - { 131159332135711557L, 5133143837072648253L }, - { 4242991056913343886L, -6686962481360868108L }, - { -4674809189780845966L, -3250341762564229866L }, - { -1954374021725723642L, 1323620250067427930L }, - { 9000512499144627986L, 5548743979937884843L }, - { -4966087500556332423L, 1629058188872823733L }, - { -5368443575882114199L, -1654000784989387712L }, - { 7898708771797640436L, 2086542013295426142L }, - { 4954393344642394763L, -6263444864756732931L }, - { -228876611915096824L, -4537215972588867693L }, - { -3517612841169834059L, -2765341318717509735L }, - { -3181203061349135348L, -508056924812247324L }, - { -7887316482076885972L, 3685431341741839088L }, - { -7491168484443218074L, -315834147890523005L }, - { 1505841500971991620L, 2429709964985541076L }, - { -4819676400227780409L, 1773949406412424848L }, - { -5600600902750799703L, -1641786959599535542L }, - { 4287196606575127498L, -478264408105952247L }, - { -6631038754487834066L, -6917616052826791264L }, - { -8562057237102997949L, 363106954233931060L }, - { -3310437032247565299L, -1481298033384594105L }, - { 5856634576804593925L, 4789755933237089305L }, - { -1659423729330836678L, 8494320904037636560L }, - { -2785469434848827216L, 7947848915676623091L }, - { -9178954688981005208L, -6785118745114422741L }, - { 8284532255782100018L, -9084098449354029433L }, - { 3932114027983614574L, -6289978089305485110L }, - { -8735736194352900940L, 1405162867455330917L }, - { -5947824514040167701L, 2919798360124166543L }, - { 1555054962173652536L, -1367989015884168404L }, - { -1028318040091115332L, -8568997691227678605L }, - { 4142937213480146786L, -2370901494422112752L }, - { -2819444980269809917L, -1308444741477082853L }, - { -2903074845803234197L, -4366808985359220640L }, - { 3718049583878739327L, 4354690312963727033L }, - { -5493173480792612991L, 2989222282329614806L }, - { -4746130552040956231L, 4496455761262808903L }, - { 6244568873371787043L, -7185280716865151881L }, - { -2997679871934966832L, -7309017646763845518L }, - { 4047215048138865730L, 6980804018930957198L }, - { -6551789563963923059L, 2916207770637549836L }, - { 9086055720517286271L, -2714494659452767480L }, - { 8876034907713774156L, -3821387241491356709L }, - { 3680389259422527058L, 2196589891375455610L }, - { 6042866802807055050L, 4754255664635533276L }, - { -4886080504692397375L, 1725619517599492655L }, - { -7166197738900036643L, -7243540186236866594L }, - { -727151388570173900L, -1634001379810212424L }, - { 2438604478622089045L, -5055210733955393661L }, - { -8782162061024071951L, -5174793973752794725L }, - { 9077567357215978574L, 708556034239591714L }, - { -2871872737471270227L, -4708678750825119057L }, - { 5320002012835335589L, -3526176864908362243L }, - { 5539849377632910446L, 2462221416305069443L }, - { 7555126502803598608L, -6755206762366162750L }, - { -8125224475094342490L, -8964598482310477564L }, - { 7417955058148509629L, -4872283382423985221L }, - { 4176877628224197597L, 2859364539165637414L }, - { 7598278370710374380L, -5131602648378407232L }, - { 2265897989342130546L, 5814327006378924467L }, - { -7061482734014550086L, 9021575515219812736L }, - { 1468468196263413305L, -2354059920935567217L }, - { 68682113048681479L, 8070600121219547337L }, - { 3762225435622216659L, 7301822979322435545L }, - { 4581877841476416419L, 150382900142393599L }, - { 5115735211430226046L, -4547351323713652974L }, - { -397731465197117692L, -4450390472569952747L }, - { 3802999106815691779L, -8622666519332587528L }, - { 7574760794857420046L, -7880900128621810138L }, - { 4178197313545546553L, 8601353854513781244L }, - { 9065628242529864979L, -5591534616375481129L }, - { 542937206029962193L, -5953723718608560239L }, - { 1542373631583440917L, -4196619194839329674L }, - { 6903559734881147673L, -4316576911841534837L }, - { -2071796881281526902L, -2370970960555427167L }, - { 3779795498327194080L, -4298546406843841164L }, - { -2217268270456792594L, -7501440969788317177L }, - { -8059036377920200513L, 259328063542822684L }, - { 5425988266816609684L, 4575515416863828865L }, - { 3561830549061618056L, -4771952364404768277L }, - { -7500972620191462258L, 71975804172456571L }, - { -6776359714207180134L, 6900148804315605370L }, - { -5775998075012891173L, 5004232704182523237L }, - { -7755164007855727652L, -8433929914715590664L }, - { -4908348827451399810L, -3301072556359365892L }, - { -1162366502935483389L, 7384541007136416566L }, - { -3581470604892760162L, 1976805054171796726L }, - { -1434370488502028008L, -2547401488641472132L }, - { -1493293905909468959L, -7441839474594455138L }, - { -6762524287730181241L, -1601622492184803904L }, - { 1393564479464918401L, -3009814218133425849L }, - { 6717807842217858780L, 8165340015547077095L }, - { -2269779449488763938L, 7927691835893341197L }, - { 9119207083214966580L, -6786708504775243266L }, - { 4437289221718108033L, -8954685188941013035L }, - { 1991815488616873724L, -8103624658829230585L }, - { -1136008736729825773L, 5916992738852984881L }, - { 6919259317959590395L, 8169647393497828250L }, - { 5700567409540575886L, 3944594914853142763L }, - { -6511943523783520343L, 3357295622932201334L }, - { 8471138532439345892L, -5702753540740804811L }, - { -1261020616469785625L, -5601367572994175866L }, - { -871122257839774394L, -6976984597391717235L }, - { 5853266956701599170L, 2179435702096663547L }, - { -2605324811026081L, -7735967841074233262L }, - { 5645723143070327343L, -5300356287831138464L }, - { 6678903618140079830L, 558130329295762466L }, - { -8243425527465830189L, -2753667594936483651L }, - { -7366977412613262267L, 5174687824180692399L }, - { 5554112623362949635L, -5127585768737053004L }, - { 8508696414094887570L, -1823867105900064766L }, - { 4526724121376344377L, -3708548295144862203L }, - { -3066464409160921518L, 8089012003806475311L }, - { 6423971479710566480L, -7039855685147014402L }, - { -1301150937530073813L, -5585328718840536037L }, - { 7047171805158365362L, 8120759358342535720L }, - { 6607488204808324896L, 3901947263714529520L }, - { 2550589198730302889L, -1984225587532390244L }, - { -1508652597994003459L, -2625033096378578368L }, - { -8797285250854566260L, -8253763814000785373L }, - { 4531577529333440300L, -4130829189401243467L }, - { 7171511780196023810L, 7669326050720755710L }, - { -8696995432677729109L, -4993075107798409464L }, - { -1038277725665095082L, 7849644114484248935L }, - { -4030021971399704454L, 1256768363928500996L }, - { -7142316504058264789L, 1252978987744068438L }, - { -8690342808784496917L, -6354446673649917336L }, - { -3538025267466743323L, -7107557983957120854L }, - { 3030344740150338756L, -6398796188997538104L }, - { -5434476681454308336L, -7496500108057908992L }, - { 4747881963413479619L, 4331614803740895864L }, - { 6649081146297801785L, -7539581662252191545L }, - { -1340297105335493395L, 607361016476543345L }, - { -2345199575979290182L, 3757829078804583621L }, - { -5142497021023029281L, -7853754814637441930L }, - { 6590959395881104212L, 6033816056225283084L }, - { -669027690510749039L, -5598511059038889050L }, - { 4713909714515252237L, 8498930096032167029L }, - { 6334133652957330690L, 2179067576579471054L }, - { -4130611448171970254L, 528954176811746781L }, - { -8777249173946876665L, 6460005588985419673L }, - { -3777422122544011758L, 2949786550955297825L }, - { -4139822748883105829L, -7060522727358656049L }, - { -85322879655457932L, 8186136004732221397L }, - { 8510613507788926362L, 5121599937034700924L }, - { 8480533752847008903L, -2597744666135972005L }, - { -1501849715563565256L, 59714163236198638L }, - { 7144010316023561074L, -68619869987424240L }, - { 7071721153639906878L, 4787691242484650034L }, - { -2413842258996393407L, -102302437317144586L }, - { 3829076351340781609L, -2319803825930028643L }, - { 3904259427140354464L, 8797809088167232571L }, - { -2423161203681766273L, -470372639707402796L }, - { -9222948412120414441L, 2461249821658147313L }, - { 2232806743868046887L, -2392759272414380666L }, - { 3459293971647694135L, 4210665238486533367L }, - { -4958044470517187570L, 2672187701402147373L }, - { 2702008978364322255L, 5638626575506030561L }, - { -5230685167113972622L, -7617392617133523896L }, - { -4777581725252095139L, -5140368461179091836L }, - { -178566492057125337L, -6847413203152532992L }, - { 5473668624447677467L, 183117619671776212L }, - { -6025569476816496835L, 6468191562561708163L }, - { -1758476046405271590L, 1659198619774233309L }, - { 4318010125119483290L, -4823834649924404602L }, - { -5001898604592523465L, 8911108370391112613L }, - { 4496672693040208250L, -2259208634242191704L }, - { -6249539806063036132L, -733362499880552249L }, - { -7752211883834007080L, 3335016862478247633L }, - { 5401928633460905475L, -1235856076215536659L }, - { -7924780124408034823L, 7205431551907269451L }, - { -5852842870036885474L, -2844635853105127428L }, - { -1507586788733048669L, 4335468969213182987L }, - { 8723145826212343490L, 8281666246893648997L }, - { 6322146995759068109L, 7484504729026216551L }, - { 7033327335320195047L, 7165769114010786735L }, - { 2731703606190537636L, -9199202980814290025L }, - { -5700197206770306283L, 7961233189193040547L }, - { -7681929128588407075L, -1127459956109423435L }, - { 4915318349456884393L, -3186450213454571240L }, - { -4365674444257230772L, 6196235634481915881L }, - { -618412543643891621L, 1212876310516573701L }, - { 5389658231644689771L, -4706000143957565510L }, - { -3464092788986188235L, -2872909288794957622L }, - { -1050158483149088836L, 4121143610298397281L }, - { 2986789282075383014L, -8242619029520357911L }, - { -7095920626607872836L, 9003605662221032036L }, - { 5041839261426701960L, -3912891411490985358L }, - { -9180003565648806832L, 7225541720051129724L }, - { -4136797423318912582L, -7424404802325061838L }, - { -815263725971673785L, 8781179913689849178L }, - { 7751482036034122791L, 5628918479571946112L }, - { -6582902412740766080L, 584288259370869254L }, - { 4948480397753687589L, 4278919042846414482L }, + {4331629317196124516L, 1639885090772725551L}, + {6697150685477982789L, -1583908083060253398L}, + {-8292226578951944721L, 4476804508315987292L}, + {8469039529317823308L, -4636474853694258398L}, + {-2848870975062246556L, 5233816596372106824L}, + {-4847447143719480019L, -2687604445613537347L}, + {7545677836808206678L, 8332429470403026021L}, + {3540211138895396408L, 3992459923157840628L}, + {1285813610291173716L, 8233152553044849459L}, + {-7784481855774059403L, -8096273352407245883L}, + {-2714345854300347086L, -1562905338847105568L}, + {6925684980325533267L, -3117242072537376104L}, + {-9112643559117885900L, 2771189218553273490L}, + {1882756241765347250L, 3134678319768795724L}, + {3701001212619307056L, 4694823574419600457L}, + {-8419102115735858709L, 1167505134600559530L}, + {-8964415716902764417L, 7665362522302890520L}, + {-65484870057070163L, -2154863037755560524L}, + {-954938640704679474L, 6388877495784709814L}, + {-979562365498527144L, 5481887351687388723L}, + {-7382239783186871562L, -7733943340511654057L}, + {5251153271619350814L, -5357392133568419518L}, + {3564854195161521021L, -2021636742340634953L}, + {-74312886167345484L, 6701300805910281389L}, + {-7331277368683814568L, 5111706538133173116L}, + {6180175351202170214L, 7106065787858343366L}, + {-5506848341444621561L, 7868028660651681881L}, + {4709740154938203410L, -4396229032691618835L}, + {7716297005579308510L, 4776035376666368100L}, + {-5231218401659391210L, 5502389999871393522L}, + {2808335999161107948L, 3172485746495004832L}, + {-8895902480507490378L, 1734050687059504670L}, + {-6484295527863798667L, -5865043420154797721L}, + {-4893753704679531145L, -1407287398624235464L}, + {-8013506817112676885L, -2413542569879967512L}, + {-7115565146196200482L, 1492091106940842223L}, + {-4250908842491168006L, 5100692366480332295L}, + {7641455146012374921L, -701187772797485824L}, + {1171882517985315020L, 6041975995921368652L}, + {-590591174345433298L, -745155016275351721L}, + {4353825711501646860L, -5695286777690739329L}, + {3766038603438423921L, -946995585431570618L}, + {5669741062587975241L, 3306563558377990077L}, + {-4034141614316184690L, 2303139291793139905L}, + {5042354261806495873L, 3029285818524047503L}, + {8171624055608706139L, -7686014468326816771L}, + {2465028573996743971L, -5155189837447338979L}, + {231525910304521521L, -7468941650786504332L}, + {-2906566784067431233L, -3093130381718113227L}, + {-5815630959969268197L, 667274393249985457L}, + {6867289460752780832L, -2905703229103006681L}, + {8367342037681739365L, -5211011903304858229L}, + {-2281353332963214183L, 9220933480317079273L}, + {-7873419781565326375L, -4958329158596891671L}, + {-954320324783281344L, -3907949502207462370L}, + {-8978876518219901536L, 6459759108635159800L}, + {5578589535412452811L, 5347663850081616344L}, + {-1139114663023920493L, -1336174274889435851L}, + {-6125271792804196849L, -3695347576125854749L}, + {-8540897085876126918L, 6006668829300360192L}, + {2457750544363517570L, -595538372156368515L}, + {-2873340196283457206L, 7722471153320550112L}, + {-202735095288385060L, 3306848206005022873L}, + {4680342363383152427L, -2968985762887494339L}, + {3754567565766477241L, -6037287120647939733L}, + {3030040040421745654L, 1937599850940715675L}, + {885892669913812197L, -6287203992695247871L}, + {-4668401756510431198L, 27796623019379649L}, + {2828217119128588853L, 2936780557572794362L}, + {40721351745424859L, -2784176622995643676L}, + {4226613921171131261L, 497180669697206711L}, + {2476560251925287446L, 5820151453400560579L}, + {4857915294336896964L, -6247280158567945841L}, + {-3243612273020441258L, 2836499443783443472L}, + {-8323173319150694718L, 5859965750769241918L}, + {-8464714455451733912L, -8306892192837505339L}, + {2417309479822957758L, -1246973976546704153L}, + {-4970343771720203825L, -3191439884819854813L}, + {7616892889149047131L, -1492818326952765975L}, + {3179230974339910862L, -5929287588380075388L}, + {353551526640305233L, -7378339587947523515L}, + {840447756688080769L, 6565835274439444296L}, + {6560453897067438875L, -8337740380118346582L}, + {6404605759690477879L, 1860833063820863399L}, + {-5798495500651630883L, 1091158385497258294L}, + {3489314580607854539L, -5573961258448405293L}, + {7361202545248788112L, 6034580963668655699L}, + {8662317980504766524L, -8926545602578986090L}, + {-9176879321700063391L, -2398921906930257590L}, + {-5722341628043847505L, -6351286801388339488L}, + {-345401929977388616L, 3005904976331127429L}, + {7797208744999634196L, -8634345153714809468L}, + {-257714712793164095L, -1873140185420586258L}, + {6828368112434274995L, 7058669897955400332L}, + {6587574874377658116L, 4874363645196347164L}, + {-8420691969719514848L, 2341431149372744263L}, + {-1436841954376886408L, -7620195622266955703L}, + {8390237817828095380L, -8971128665773428134L}, + {-1244269747449213801L, -5329391842655754631L}, + {-3239069421268305651L, 2334172164129027696L}, + {8057896190039586L, 7452686587683727169L}, + {-608430754954139223L, 3381655527636719735L}, + {-2634446749318812749L, 7010915016267118875L}, + {8929276493775119227L, 4292272306792598039L}, + {8931573570276676636L, -8519118794081841344L}, + {3822004851281897117L, -2203301444419626572L}, + {-6152300141823657396L, -889109731424416165L}, + {7182476636738674444L, -7649930728107420084L}, + {-6684339015093823920L, 6577956481422755158L}, + {7807280739361302131L, -1135517321040401801L}, + {-923194570850102811L, 6467757807397379780L}, + {1584573338514642399L, -3893190475498763966L}, + {-498065553132084148L, 1865266646395158771L}, + {1799679540365788870L, 5841239947085522603L}, + {9045748501111411219L, 7421695194818838145L}, + {-7637550038764425741L, -5845707294280746103L}, + {5329558184254416917L, 4547453660021049624L}, + {-5342451072932073021L, 482260313304954060L}, + {216480453064876203L, 711069328663754163L}, + {7508106403501961131L, 2007822021650305972L}, + {8725508331413138293L, -3626352862801032903L}, + {2560531293828421548L, 553012714310330725L}, + {-2008955238081544825L, 3340257035234765328L}, + {6529104080181178646L, -7547960671941050622L}, + {6099628745411598729L, 8241958247598079573L}, + {2756659790325965589L, -1910461132866830894L}, + {-9213432955006411442L, 3852602514422689973L}, + {-6654664302901669378L, -3591698504276609326L}, + {-3643300284729203479L, 3240996573344966350L}, + {4663787755159455929L, -7043137326384228379L}, + {-669710962240484079L, 2198151612197094376L}, + {5035186860853879345L, 5689607670679160328L}, + {-1497009633866831856L, 6116439920220101860L}, + {-5364225470045216191L, -2524583207297749149L}, + {7960728708973508149L, -4484834555703476170L}, + {5512091823114850815L, 5169321183215226123L}, + {7721868783230577176L, -82870217609973041L}, + {5949192792297315127L, 7386107438936735767L}, + {3638671413276752949L, 967354079224124082L}, + {-3493999225022562864L, 1736987366587456064L}, + {2975169008368240023L, -2911062917802181439L}, + {-5830673024621691907L, 7279518614247137665L}, + {-1139876564413364861L, 2573839846536122317L}, + {-637830076892861526L, -1400018571611626811L}, + {3073567850729737274L, -7060083933758612828L}, + {584182832408009040L, -1684515357135093979L}, + {-4548011654370479917L, 3650830433632177136L}, + {5119409690433687288L, 1363851279412653639L}, + {6532746751816727406L, -268134467754466L}, + {5036805181987997026L, -5288517888352132842L}, + {-327803426338917854L, 5322571032958708131L}, + {-2189559856150793303L, -2933300712108522399L}, + {-7915301437281691707L, 2943568251638140676L}, + {-6227342842105738959L, 8099698710467077821L}, + {-8993001121053935550L, 9126194125698526755L}, + {907730379649993758L, -3652315413425215569L}, + {5023461831735961354L, 6919412303663430221L}, + {5364101017343427759L, -315599275077811411L}, + {6923504748893038502L, -7350219810380230143L}, + {4908646141995756237L, 8507617699718047232L}, + {952783116860484934L, 4009659776894373679L}, + {-3294878312196750608L, 2442027558747033926L}, + {-263001097034647143L, -6632583776719317880L}, + {-6341310972840343572L, -2656983727499478166L}, + {-2779322160924414865L, -8687174340132939253L}, + {646982227875835088L, -8921122925878035469L}, + {4981486718593732420L, 610621754580223298L}, + {3136424241367791514L, 4883504922076234513L}, + {1588727704329333995L, 3030073555385079838L}, + {-4070703023625741663L, 5658459444065239280L}, + {5828932422032929570L, 2856038697306292627L}, + {-2881020791961093427L, -6214682596907600989L}, + {7289018053124519212L, 5097157380496129712L}, + {-8210232022318257391L, -4945331947102062592L}, + {-4932159699729152421L, -4454262099293472400L}, + {-1519151536033678760L, -5023767059372904822L}, + {7768139346588245743L, -7913086732140250835L}, + {4663204289123975746L, -2718362182895828791L}, + {8301645006754151822L, 2622047573067766958L}, + {-527375505220402703L, -3652332080375247426L}, + {-5729392141767077416L, -4151319741037085130L}, + {-1061319607921895354L, -1409911642874475334L}, + {4940818006273925907L, 2184222853857570529L}, + {2723620363371285152L, -7672690566794057192L}, + {6252714915337699141L, 2314830992990646948L}, + {-7047533064810318960L, -2008174505846145161L}, + {2306818986335389881L, 8249997590679901194L}, + {8450065497909871849L, -8831895305229340716L}, + {-4217000768181820795L, 1544531499573709440L}, + {-1337267428073608141L, 6177006046804863469L}, + {-8857633266251591090L, -774347292282095068L}, + {5164282658652255398L, -8684179529877357750L}, + {1481739352759587670L, 5414525982296129222L}, + {1351986975138349201L, -6185528530236014533L}, + {65929927533374434L, 6252977882818877758L}, + {-2314142725260293145L, -4877218633614863001L}, + {2620263026747810589L, 3958401008161325769L}, + {4469476270705785392L, -5430615574033125470L}, + {2056538272538478077L, -862355286215931849L}, + {454180883353015865L, 7762719650023470972L}, + {4839487715844855786L, -7900083800860489486L}, + {7942533619400842120L, 8585038689893337276L}, + {-2815467195740173572L, 5296875560477683335L}, + {-1083538654790434734L, -9193249793920630201L}, + {1889012098251655317L, 2527085564415319906L}, + {1741657056552907771L, 5592210964440272641L}, + {5723507339014228383L, 5029630212357158901L}, + {-7032334681933015537L, 4084980747390945864L}, + {2463118178158422515L, 8098757569442079597L}, + {3752105439687274244L, -4181414926127006394L}, + {-663915851310858086L, -85354840719075463L}, + {2011110544817827104L, -2671072148767894820L}, + {-1420169423837059118L, -598759081963898162L}, + {8553587424506667053L, -5240400034332352370L}, + {-7662248035234626103L, 1325294974957692694L}, + {6679274078239456105L, -1434928924752403272L}, + {4819483627709809889L, 8478319941508844354L}, + {9203365986368075354L, 4033559530674635870L}, + {5950679156247704341L, 3837428951973829103L}, + {-373315081569566463L, -1482507884485177621L}, + {5339226513315271605L, -7611681873083001579L}, + {-2219527427249265829L, 5635133397518404122L}, + {747296102288535702L, 8973619218046772307L}, + {-7493057443430069396L, 3497964097134584394L}, + {6724043080988557848L, 438429818292787405L}, + {2032101896102161207L, 6083472720220104745L}, + {-1656936845267744649L, 73740362659034890L}, + {-3491848432979599234L, 8493083653578236787L}, + {7404204759825967163L, 1396472196281816555L}, + {5796798020837779651L, -2345404432560011061L}, + {5185226877395757398L, -1407423944572575652L}, + {6062827044520085102L, -584609121356896609L}, + {1631754126980769139L, -1470461937317538162L}, + {2155034312189437638L, -1211843219178899758L}, + {4419389933864557564L, 2474123120380500371L}, + {-6212670054900830945L, -3283329040397730768L}, + {-2848281703253248988L, 1376655356872485794L}, + {-6545922936561011643L, 1663590999050246928L}, + {-604998998887059747L, -6404606806597906129L}, + {-8813736778885336452L, -9050067230254355096L}, + {-5028399912173153801L, -8181108087906772027L}, + {2802315771636654550L, -3057409231249770497L}, + {1359831828875761363L, 8335036989554482751L}, + {-6244291732477211457L, 6778429609948085662L}, + {9138108823363225790L, -4965281868002262510L}, + {-5700703633273694371L, -6875741241266038885L}, + {-5189931767235375959L, -5872467238339532574L}, + {-5917217031437644153L, 6643339725428825001L}, + {6559980057173897885L, 5549915138011177360L}, + {7585954365066361941L, 3827417266074500159L}, + {1833254434142522137L, -2975534211365301488L}, + {2622798612834078243L, 880690646882639358L}, + {2935894269140572959L, -2170847169010457533L}, + {3342180495858759098L, -9026120371020346544L}, + {7763655187214368195L, 140653358355510195L}, + {608976619205971467L, 2680459468129440062L}, + {-4493083204513432310L, 29582863612308858L}, + {5655458152670549588L, 1593207810406994381L}, + {-995372262620475933L, 2247666490547334864L}, + {6725108152764242753L, -7925184458835945793L}, + {-4152678539161864839L, -2459707456071349037L}, + {4879330012023732227L, 2141963663717599411L}, + {299691067249437340L, 1396036161400977741L}, + {8253082866296742941L, -8013096718656330446L}, + {-1349088245542024700L, -4461083559764567188L}, + {-930670635091392036L, -5798322241366770012L}, + {-6305033172145799503L, -3880395016914540203L}, + {767676528758696723L, 1063272237810615854L}, + {7848289152882068204L, 8909778499602937325L}, + {-5335123725692922309L, -6946127868897095127L}, + {7618587959592606045L, 4634778821401009725L}, + {1310623412826253949L, -8143415738254494696L}, + {6105911509337366946L, 792001017010716854L}, + {-5132873445536420119L, 8072991014637794838L}, + {-5066374717991788365L, -5659428556859705023L}, + {-4196018003514359930L, -2960252077637016148L}, + {4602399218983903018L, -7250042258597588446L}, + {6996237050722228275L, -5262328436781830557L}, + {4750432263399753517L, 1652612239899504274L}, + {-6552768219041772261L, -1285397640667162897L}, + {-8886514643984898377L, 3007652368209907553L}, + {7353718498017818617L, -3719995466824510508L}, + {3420752363982256164L, 5107602565903732791L}, + {-3106921624226184176L, 1168257018303839838L}, + {7755185569018499850L, -3857145641161864056L}, + {138048424823142520L, -8708777035055553867L}, + {4574855394856311409L, -8338994606192096015L}, + {-797116754680671576L, -7236253372429516585L}, + {-6319525882248058891L, -156939084894516690L}, + {-7211292892013797268L, -8753827357192046412L}, + {-5969262208310571743L, -4551450243246721654L}, + {-2242517284471541983L, 8996152110754951646L}, + {-2134523085752830969L, -7495306502570748263L}, + {5239925547316736378L, -2997846662183027098L}, + {2211989170649079345L, 4552093064635424355L}, + {3951874086467810189L, 606093338469391572L}, + {1541713943974254342L, 5009388306382876L}, + {-5392854420512731723L, 1707913964447526483L}, + {3564316510315168871L, 2357502818216120645L}, + {2901564687206922350L, 4109787658960348727L}, + {1540984989266277585L, 1126768316180128530L}, + {-5588692335575710649L, 6459331785501191353L}, + {-7656900483971665708L, -5215338425961743757L}, + {-1269975572006533380L, 3123164670370962323L}, + {-8586683894725424637L, 4575538545983245779L}, + {-667220377486025270L, 4838469292655308285L}, + {-6992322247305413343L, -2591667159733033943L}, + {1020432414035508475L, -8985144752213736688L}, + {-762737570699341127L, 2010955117870916034L}, + {-4996438874277990597L, 5869624445205357912L}, + {2399099134154679381L, 6901184743738376212L}, + {-7294753205977958107L, 2678158469636349061L}, + {-4330814694281211877L, -2372110554595119614L}, + {-3424505945178467498L, 2907272188222348819L}, + {-3908232167211290102L, -9086151270933909886L}, + {-1715708172189155463L, 873283929820174937L}, + {-1541677764411125216L, -6424898669918065646L}, + {1443437733037296364L, -5161573268394920993L}, + {-5699613322350318170L, -4038288171429340078L}, + {28422381221154018L, 8508868024345659079L}, + {-8448942739014323861L, -3172255279146427597L}, + {94089349704640679L, -1872147708441883283L}, + {3121324325667558058L, -2742049169245305954L}, + {-2027215282474423693L, -8633918446316412568L}, + {-9090860166446867101L, 5313050066376562140L}, + {-5570813680167514715L, 424079786412921033L}, + {-4433017494388855624L, 4758148122860548219L}, + {7780214454833321289L, -3435318272110965543L}, + {2818118075900140158L, 2464433363023169592L}, + {7909566890394565636L, 9103865919125847740L}, + {3281719552865083509L, -3221707456270358295L}, + {2293428426098439431L, -1732177137372972119L}, + {4831877444478608421L, 2348429429785960283L}, + {-8036810704178721498L, -9069577601784087655L}, + {-6696440698423871679L, -3085412744253133998L}, + {424663572619708233L, -8999784711703971885L}, + {2210379950234460182L, 1691623452644126371L}, + {4488772831440475400L, -2961180662304531155L}, + {-6238973969104209915L, 3639242386345472368L}, + {-2892035378057749818L, -5319789022585455217L}, + {1190083349888328687L, 3160160382664083073L}, + {1900956434625552346L, -2284489391947536786L}, + {5686029047839893831L, 2781250728673448714L}, + {-8652319297499303518L, -791865261776098984L}, + {5660206937964935444L, 9092721539996400845L}, + {-5693798368774435246L, 2258836748989798347L}, + {326881025455212277L, -8754085884902168853L}, + {-8376143443592681499L, 2999534153289768504L}, + {-924714482174160655L, -5379654820304465219L}, + {2731102432407909647L, -8648442112932022073L}, + {5974710608961653241L, -3581417371718541672L}, + {6662943015421622990L, -6686424439719532742L}, + {2629145426514230124L, 1947184247238363747L}, + {7653779470428211936L, -2981000221623473869L}, + {8231699528634814943L, 6477265731277391860L}, + {-7880485152483421857L, 3296436166418847848L}, + {-8715291256937697509L, 7836011376951354082L}, + {-2608260639142008146L, 6771078140290822120L}, + {-2891414416406033026L, -4301793197635600383L}, + {1006672424561275863L, 2790898605915233737L}, + {-5345465745471823175L, -8188476658929014250L}, + {-3007098514343148833L, -1632205865341471381L}, + {-8853686550740270619L, 8025678435968917400L}, + {-8826799561287303533L, -5665941448030027073L}, + {8800245871751669511L, -3536393248796535509L}, + {565431636219131046L, 3503967908423474425L}, + {6137897978460556916L, 91950916967717704L}, + {5482308004417669307L, -8343102428410455164L}, + {-3006854606371770142L, -2624010453361449257L}, + {-5550863738981833513L, -5107086731935101640L}, + {6860154257076535929L, 2122136767273906883L}, + {-7830408716033920139L, -8885954713952577885L}, + {-6220766884162806429L, 7016794589305787131L}, + {-3254641290637732033L, -2128471522653394358L}, + {4069104293139053208L, 2152160035557905229L}, + {1298727460612851492L, 5940452780843637659L}, + {5145793087755505159L, -9004759719138398615L}, + {4012194405015900827L, 6347510871907681406L}, + {-2096633266369036577L, -1498193343687136142L}, + {-235600124490809513L, 4988899018975547087L}, + {2256248865523312538L, 6160266267729455349L}, + {1856550792634706370L, -6501591819842837449L}, + {-6338437638663913139L, 5594380189312176072L}, + {605690123879344699L, 5053237049864143776L}, + {-5972006707479557169L, 4785782695457342020L}, + {2788841617850067275L, 8271282777966666049L}, + {3341756482258277517L, -6056850609051651338L}, + {-8730087995322499274L, -7118156720511960164L}, + {5666761853789513177L, 9188761121016073816L}, + {1427855942817620030L, 4407328625609699591L}, + {-2247084578644277545L, 1708890129314508850L}, + {2632056116244532492L, 4401923056661588294L}, + {8983184113458203674L, -3136608526412251467L}, + {6222824259917067927L, -8130597606013207234L}, + {832847538082989274L, 1548428941129567096L}, + {7408336855734508382L, 7776449749647396310L}, + {2463234904146980715L, -3340268007978204382L}, + {7616355816816829131L, 2303050254259962399L}, + {5437320614714817066L, 8476803541903204130L}, + {2176649963064497163L, 8869043259439175488L}, + {7847964877858458386L, -6373057125165026464L}, + {3676215252045438118L, 2204625982824682027L}, + {1457265625453915305L, 1387291172404214096L}, + {421670244665897930L, -387569155792122879L}, + {-537286355906412984L, 2487716427838425241L}, + {845546777083974630L, 8893865741331650301L}, + {6294586905906742451L, -4553937046340818752L}, + {-6979812383811440761L, -5140944992099214823L}, + {4101166573373719960L, -3761343286476191065L}, + {430647036995334093L, -2776276191091528330L}, + {2563569094767382754L, -1570641686381817622L}, + {-2226117486192197040L, 1671878083856373830L}, + {3989815455278220803L, 4052233204958035005L}, + {-5573460076032648378L, -57360737518556647L}, + {-5149764105493446507L, -5658661468258761908L}, + {8908023797302087394L, 8118348247591337103L}, + {1579875413248797693L, -7026389577366674812L}, + {6557085398158756277L, 503776811517866907L}, + {-1860582499397819682L, 5110024206261509272L}, + {-3940264269551745098L, -7099666907393494587L}, + {-3760050418257691649L, -7345481607428632425L}, + {-2749137550200198091L, 4331101412580103856L}, + {863749834414320446L, -2373778346862397644L}, + {-1701674908797410602L, 4970046037650428460L}, + {-3441531459858237116L, -988835857524290763L}, + {7781166611943523849L, 8140634413685909259L}, + {-8747694838109223765L, -3156431890675712017L}, + {-7940615954936651322L, -4120870388273929951L}, + {1761800111692886098L, 2547288411650164556L}, + {-7563608795264216209L, -4847926844762470820L}, + {2430120273101259962L, 2177062838677564347L}, + {3034607409190630193L, 1981874097468871768L}, + {7596606678605264709L, -4288556630910272875L}, + {-8815959038019965324L, -5980112834322187096L}, + {-8056592803858661736L, -7052224712096695046L}, + {-6054319005531061432L, -9188489342513555697L}, + {7637990614259037480L, -1415221593400472327L}, + {155762651336866309L, 5657149807227102396L}, + {-5295066003461610118L, 6870728820605999153L}, + {2097996021613363354L, -4931700889553602696L}, + {-2649318637576910563L, -6978908410517853058L}, + {-4710689453059380010L, 261449222883509725L}, + {8675276565266944323L, 335351249952568394L}, + {4061820304631504890L, 5804675661865029248L}, + {-865251409507836874L, 4577923466145028915L}, + {-4305544705996842550L, -4883326217850566724L}, + {8133733737104758782L, -4495263459386364509L}, + {-3599082219550900640L, 5219535324240806812L}, + {-1172444168425884022L, -1485199996039546317L}, + {7002178848795582841L, -5188784964680065467L}, + {8753574524527561837L, 3919561486790968735L}, + {-7959972011549631263L, 8799060198670636386L}, + {-664335750987460129L, 3277903706972742930L}, + {-7761182775497779250L, -6310116907364982155L}, + {-201978935828898840L, -4696042526673297367L}, + {5748605939155571413L, 6791894953965220475L}, + {432959146257511060L, 7202022074150088516L}, + {8597688997048592708L, 553712398347581549L}, + {5979346454620003082L, -1716068746879028522L}, + {6682666834922578474L, -8712532151663695231L}, + {3635671342630844084L, -506639358181173636L}, + {8295581682942403968L, 8983503375557227249L}, + {-6056716329065906860L, -1166637647026189798L}, + {4876232349596700627L, 7615893510850307496L}, + {3282465211073936357L, -5416752951469934982L}, + {-6277210138874800012L, -614708101837670038L}, + {86063810903062668L, 9159828528959232073L}, + {-5131034425726984549L, 7387887681768229166L}, + {7879994284944917570L, -5715373531508598047L}, + {3805360137603820244L, -4830043112173673655L}, + {-4819745855255108901L, 3483810877331937366L}, + {6005083603591253720L, -5557974655706376774L}, + {1260872260703386533L, 8098831063630607951L}, + {6208805585589862489L, 8877979288513368898L}, + {4467145362283493250L, 4374169585767619657L}, + {6925593199187107448L, 3955240828481560781L}, + {2290814776012496288L, 4042584658561538346L}, + {2202094536385319447L, 270484628403474813L}, + {-1583289128964920170L, 8120175710315470278L}, + {2414314858213839292L, -1548161289658943137L}, + {-417375850490384234L, -7625678914308549312L}, + {-6775757096712023859L, -5214376957868732121L}, + {1531877516325565400L, 1211163938547556009L}, + {5092160435195199211L, 3684528669792750192L}, + {-7779989257755281504L, -5375772666913524545L}, + {-2910324314591098862L, -8416001170794441872L}, + {8497090690994716777L, 8540791444836079312L}, + {-7802963550632908400L, -3467583003730778096L}, + {-6411284901845568322L, -941537897448291129L}, + {9216337043421866495L, 3078985572433750012L}, + {2437859992012674232L, 8179548351840095050L}, + {6960237011186167617L, 3869309237547749624L}, + {5100162418749277386L, 197993277396624937L}, + {6509562170805894274L, -7367535593602185533L}, + {690433361758303077L, -2806827680050805430L}, + {5936816351771558334L, -4582124194561143228L}, + {-3601277060469993805L, -4565171460269252905L}, + {-978457311807747406L, -610254066917434504L}, + {-4420940034475608949L, -1856703055424341426L}, + {3538644062391991755L, -3712271897739197104L}, + {5164625733904685628L, 2650674255718769837L}, + {192170982312183453L, 8633644357164644119L}, + {5014044649793050646L, -8449200459845048042L}, + {9147945450485230993L, 7810322997664288811L}, + {121096778422978126L, -8652535562468380297L}, + {7076446543359171313L, 571454885249581704L}, + {3849792111065500559L, -8026540109779588702L}, + {7235530029899206334L, 8515508725728343766L}, + {-6832803917257794399L, 9113172911670130481L}, + {-7448095328943903784L, -4562750453653683636L}, + {636249030288914450L, -3970829186127658086L}, + {-5837508951408640620L, -7257939566854180158L}, + {-5494182545899908814L, -1345600624398540662L}, + {139946096999437232L, 4142244339380738758L}, + {-7949772735307966448L, 5282219938929552231L}, + {-6777152677072204821L, -3004773806496786336L}, + {-648210928302263569L, 5511623637819700198L}, + {1484711477581900777L, -56114059663856821L}, + {1415763754612838143L, 4543528953784949698L}, + {-107058891244037140L, -7147306030921621952L}, + {312958362296582989L, 3898297632297745077L}, + {5071518533113132226L, 1938464859165095339L}, + {6638935098145563092L, 8586698480642519698L}, + {-2867055004276813534L, 174277963774089138L}, + {-4289503497262086936L, 1793561870758663485L}, + {1497170552728782805L, 2281434002035931012L}, + {4517675483628149735L, -4299142910986295506L}, + {3748960245079903666L, 6886847500671830300L}, + {-3691286664879128054L, 8872754919310633948L}, + {-209359184536764749L, -976043877717111761L}, + {2491341916818449085L, 7267445614416492980L}, + {5499205217633027745L, -3961171019363316611L}, + {-5512709448748519671L, 5362278415169786706L}, + {4557913818063026938L, -3160011354686081538L}, + {-2112204135968966196L, 6310834969212348187L}, + {3440403110217462895L, 7953765169956192669L}, + {-5867323792132309155L, 3117237805613135061L}, + {5420869064478055006L, -5392284491101207136L}, + {318512041709141078L, 265910602706848173L}, + {1057553941897233483L, -1301783428765645447L}, + {-6895197562631981270L, -8197304699761768758L}, + {-5782743651675563936L, 4203332157031714086L}, + {2659771847560443960L, 6759308237310585353L}, + {6592601119187496548L, -3454010220224502424L}, + {-517270229881128849L, -364112620296853890L}, + {2622604378506727519L, -1409475428244174294L}, + {-9170205866690625639L, 4114695014291468489L}, + {4806630682514823179L, 9059429146023594378L}, + {-7776613972641981358L, 3810087764460194646L}, + {-1488298548028258830L, -3810270104734245156L}, + {-1715707210842296824L, -6915036138510998600L}, + {3796221982870729299L, -3736370821310651114L}, + {-7882722580553373597L, -9000164591921300229L}, + {-1797548791879939131L, -520599612811393613L}, + {9223079908042491188L, 5543904114523917201L}, + {7847548061281742781L, 7166650075853579796L}, + {1041148225166463713L, 6331269772201105184L}, + {-2800037601895587534L, -8408921437830061596L}, + {-7832361151307182116L, -8213348400415668450L}, + {-6950576920927850414L, 9156154939542525814L}, + {-2404378656089204258L, 8395455743286852626L}, + {-7720362412660524651L, -6273166454579708948L}, + {-4901646243176144926L, 6990772751632948288L}, + {6432612866296388591L, 8548483255730797324L}, + {665821462715291984L, 3350164667765855444L}, + {5024465184664377182L, 1965564049852144627L}, + {1558901948449801231L, -6446969132709976601L}, + {2224934457550741787L, -7696287661468022291L}, + {-1486153720652331467L, -5605157687169082L}, + {2152321067003602002L, -6321249259252955228L}, + {-1858128886354189097L, 2836979244920552810L}, + {2873839996181438535L, -1072878112229444552L}, + {-243875524287970697L, -8348021835701218012L}, + {-1376873654537129986L, 5423661924194360191L}, + {3287122656145633441L, -4945767931773080995L}, + {3770833946582728674L, -6420894115027823771L}, + {-2764900700916121857L, 576336989324501846L}, + {2560091717993161785L, -9200720429015878735L}, + {5504786539926877426L, 3159208667838467515L}, + {673505854315501819L, -4598137714685779284L}, + {1264431652537758499L, -3814214474280468989L}, + {-5043418235491208409L, -8838500318471721555L}, + {-6769065002135856586L, -4166893156663053601L}, + {7666088207808456995L, -5995625777871569960L}, + {-2827685615289224220L, 6872228841331280864L}, + {-5429383711816435171L, -1797075711309876153L}, + {-3134385201210164932L, 8882919297953772994L}, + {3020879270457681824L, 5883876757118434219L}, + {-1689344584352272080L, 2437110626722923896L}, + {-9040930749904066060L, -5686175033217931543L}, + {1932280955101101310L, -7158452945023483021L}, + {-4992572509975070322L, 3605164471112944705L}, + {7546307129163923078L, 1170266758393999726L}, + {2939073542428222766L, 7243081239066082528L}, + {3374974368464231869L, 4928464298223439682L}, + {885759554366311L, 1057459879878233927L}, + {6593789636519856798L, 3419649136379989479L}, + {-1624132412418983395L, 8841047325915716177L}, + {-6031359656290740003L, -7488614225440201697L}, + {688983212618230553L, 7643942002760146514L}, + {6369052776794949918L, 5195382242098812706L}, + {-1377714920269304294L, -7175744776460667274L}, + {-1057940749189840506L, 3173893418895238573L}, + {-1655685782041312329L, 8477574094088335615L}, + {-110552080942842283L, 6888964814479005121L}, + {5250633774704933933L, -1012094598554766112L}, + {-7909648255758272745L, 750427027426622638L}, + {719735976337939580L, 5536526334688791531L}, + {3645906512854567933L, -7728442844606091261L}, + {-1860978834085668115L, -7760720380835662111L}, + {-4349804709624489457L, -5819810209764985071L}, + {7923661347327064185L, -3310448936111974933L}, + {4244126846532735429L, -3815693592766389559L}, + {-3251399312816082643L, -834497383696947436L}, + {-4937029742581158563L, 8540913837129171901L}, + {-86298941439722272L, 2057540199751740855L}, + {-8597913327563881758L, -399644259762704239L}, + {5039882027531808464L, 4551460786448379682L}, + {8056647111062079524L, 3681777671216768037L}, + {-8976752115766926062L, -1802538985705148169L}, + {-1690394607348932339L, 6687318080944374988L}, + {3378746565484573129L, -1751049606407600190L}, + {8416003090844044193L, 8135905036230225311L}, + {-2717024430934601010L, 476006231892774594L}, + {-5701892799453780386L, -7173369616685818959L}, + {1533981283496523540L, 1415291852685422332L}, + {-7462371343115417598L, 724626787697510043L}, + {7010080256761797460L, -6150362952056456046L}, + {4478373719647299143L, 5614140616738834163L}, + {6305458678328463570L, 1122352984194175602L}, + {-5102763036459098393L, -3460352410086041434L}, + {-8778795989564198209L, 1473095525081521210L}, + {-2268889645684651974L, -520070433989938017L}, + {-4555916510323499535L, 7868968266585745421L}, + {9065546065927673888L, 2823910101848922501L}, + {5852839483910534806L, 8258588543522383098L}, + {-3402482240912256878L, 5952804005743627668L}, + {2023722994972298169L, 5047124578203526567L}, + {5215407550830003324L, -7830002530699043692L}, + {1071468158469513836L, -1387799248150086883L}, + {4955237436537987038L, 6130712479065828415L}, + {-3083989516400027076L, -3440784742149283773L}, + {6722953813435001988L, 7245745558256024155L}, + {-2387850610416371552L, 182889665412283505L}, + {809463730078568982L, -3696936559309597459L}, + {-5395203458608056891L, 2087371727619347819L}, + {-6137800097014878795L, 4809155221582786735L}, + {-3605527194936796968L, -8423052822282325387L}, + {-7589842792710116365L, -1533558859642065869L}, + {8069067842420108257L, 6146489394975412119L}, + {-7454408306272078350L, -6915650351892414953L}, + {2339188701288559996L, 8366379791959321561L}, + {1008425726458324286L, 1620671620409236365L}, + {6847676052807732318L, 2526749850075238275L}, + {2271618337058209406L, -4170988020785076096L}, + {-8281033180921892670L, 2863917946175752856L}, + {3604010165737741236L, 195804067905468237L}, + {-8269928557793008073L, 7207781055493994186L}, + {-447391999287823556L, -9188774064725556020L}, + {8028984830780334836L, -444320022784399848L}, + {-3883350805508230356L, -1370082197650851272L}, + {7482610679805814070L, 6054283912748538683L}, + {6500112572029535883L, 6338212483365391701L}, + {6119648543352512696L, 3731537194623523994L}, + {6922212850686981745L, -7742260474253244859L}, + {1734731947537567857L, 4227368981582034582L}, + {4101619546129582628L, 7887200240021237190L}, + {9155049639883886519L, -1574685774619907419L}, + {5849304319215085011L, -5149097089656706460L}, + {-135976101808023055L, 7657751254514616451L}, + {3329888204068201272L, 7691678257579801957L}, + {-4336188293967075047L, -8186810994473167457L}, + {5788433959497374483L, 6005512947764583078L}, + {-1402363557578146821L, 8843112555146557492L}, + {3588707324813677961L, -5917534281938487150L}, + {6715232528053729851L, -6811917543979770904L}, + {7169368150013526008L, 7113541687945298083L}, + {-8706746826857587245L, -8859511146642304604L}, + {-4819316543846777649L, -8774395764301925696L}, + {-8782313301067526525L, -6256596613929059099L}, + {-8916832875484128383L, -3111869372017071369L}, + {-2346600299358242263L, 739981548130115109L}, + {1904681875169970567L, 1284498147074753190L}, + {-6704056743702639344L, 1025608445943185924L}, + {2270605299750783360L, -8478634978958397732L}, + {-3940808304480228961L, 3620857268219366074L}, + {-8321565943725548488L, -162850665073338121L}, + {-3825742229541937514L, 5414988189270570764L}, + {-2349339074190735472L, -2520219757190524321L}, + {-2948486946206330984L, 7132250433295718412L}, + {-747906506207273746L, 8982940781026329670L}, + {4280562720015859798L, -7158609942006274217L}, + {-4136257343808753176L, -5732481356090503243L}, + {8445283324198191059L, -7944752293528961989L}, + {-8404850409602104913L, 7482965433126677L}, + {-3264457032343850047L, -3720438713954588688L}, + {-8759790595969078254L, -3181246708414873404L}, + {-2542190711281684773L, -2502711101698706266L}, + {-8843544063303913454L, -7592618515347100726L}, + {-4003746482399952206L, 3328250037536419347L}, + {3841695822551400168L, -219582959475083627L}, + {-3588090911679720182L, -3174750020272651302L}, + {4918585626351510199L, 7130806503895849634L}, + {9222791837897484065L, 4011402744232032199L}, + {-5760984091213555378L, -6810121545918367515L}, + {2491736142884395009L, -2597704284285157495L}, + {9176699063949977552L, 8988486530696185155L}, + {-311336022868801049L, 800635164334809333L}, + {6098071943696363607L, -6466386586993453102L}, + {3781539988474542156L, 6252107264141468479L}, + {-5991444272878304549L, 5960563247743610665L}, + {-7058079929087833240L, 1774151115106864258L}, + {3692880174470651745L, 3254087094804079517L}, + {8043184184871662514L, 4334626677240459902L}, + {-2260533056334755470L, 5492216609821364730L}, + {7862870576355526775L, -2002206651704242317L}, + {-1273628657555198089L, 4500092611531376016L}, + {-7116245059732632210L, -4469253241056826606L}, + {-6206223953545513505L, -1137760425047663752L}, + {8769478588548603347L, -132736367177684309L}, + {-6809293819712164844L, 6559633909609042117L}, + {-7072037946451047577L, -2043337765421332833L}, + {5145959967698376997L, -5556603267559213848L}, + {3918549975422395928L, -3150639278327240429L}, + {-3688153306502628396L, -7435067995008483219L}, + {8933640809529662946L, -7636525704905354617L}, + {6586386948093068301L, -2183803246532017685L}, + {4314174515802583045L, 6291721688596346087L}, + {6042832017761248999L, -3695077737345263355L}, + {-2163096650317259801L, 2990268501997122182L}, + {-1301538385158714097L, -1533372430915700352L}, + {9157628132063555931L, -7093418936861363878L}, + {8447192224483369575L, 7631934447862654472L}, + {1082300847283178879L, -7618647624807771192L}, + {-8765613093828266962L, -4115536092713542768L}, + {6523561351628630699L, -7625252301278642487L}, + {7878456944142132573L, 706194176774617761L}, + {-5878800239136723413L, -1813927820728650739L}, + {-899016955838748566L, 1966176815632465191L}, + {-968680680108344572L, 6575369511440091617L}, + {8149351788840205925L, 2279025097486125117L}, + {7767149159758237380L, -2644414571334647023L}, + {-1002433668001324671L, 8943147725619352276L}, + {861378480610089679L, -4062600348246113369L}, + {5131370442347562734L, 3950723299875471224L}, + {5891997968737511949L, -7520213123221654021L}, + {-1134130780427583438L, 3132292634573307295L}, + {-2721284507442384384L, 7291597149098083522L}, + {3581758406053663578L, 8835208245303410746L}, + {4711959109881063237L, -3216119409741833809L}, + {3814833207703197149L, 2734095307747491414L}, + {-5498755072540800142L, -6403288850279922865L}, + {-434194050930099095L, 4870237253884783459L}, + {-1131324138179189444L, -8321037353987256979L}, + {6335673834129040499L, 1542550554552373587L}, + {3840591353873435091L, 1003968243768320782L}, + {6691477876637098998L, 3119531155265220843L}, + {5389042814799436488L, 3464320519030129292L}, + {8492537662085986759L, 4231665252183762049L}, + {9801065220990358L, -4142253103916332351L}, + {-8991404774454959964L, 9117831577731702999L}, + {-5967334022174632862L, -8234653634853813963L}, + {8423499844379835696L, -2296526801518540032L}, + {-1121320485100692308L, -2310012019292148394L}, + {-1137347326607533713L, -5910223239112105014L}, + {3579131621253541604L, -7873288377384430404L}, + {-949637496239973913L, 8992721473934662726L}, + {-845717236495377944L, 1709210005757310121L}, + {2627652869211543871L, 6229651575357526528L}, + {-3584273871358543803L, 3485383832684950691L}, + {-1231456733798526473L, -3693492293114660562L}, + {6404279318428525466L, -2820264389343755942L}, + {-1959366387574498651L, -1999053094523153109L}, + {8659995475649499110L, -4063188751398928642L}, + {5687743493891209750L, 1819832997765820620L}, + {5734157541830063944L, -1508187435145329543L}, + {3807145789061111632L, -1163040392176574106L}, + {-8728883033962465130L, -2019265592238841800L}, + {1886310705344218044L, -2186164004798954561L}, + {-2869995344352648369L, 608788407759231159L}, + {8631433038774110827L, -8954043830652495539L}, + {-5196628823587587974L, -2249354261523167857L}, + {-7457206590006693637L, 4392495756732760488L}, + {-5287470411743602489L, -4602133066126451655L}, + {-4100864542827687276L, 8617323110060809504L}, + {-6925193246164904686L, 320293241076880811L}, + {684773938147799771L, 6262050439533780321L}, + {4684480184200832071L, -8091186757996198319L}, + {1138521418475557396L, 7915368755744488159L}, + {-1024452235617887100L, -3320296128152795536L}, + {370178077665262107L, -9162241114040089547L}, + {-2580904250658458088L, -281987854585455375L}, + {-4067270455265760110L, 3697740925622419951L}, + {7883457924958258236L, 3225018098591163689L}, + {2745236661071909096L, 8184485281086465192L}, + {-6638753008619557401L, -8598931368792692359L}, + {-1928563245103591922L, 4655096611975500707L}, + {-5391677730310963265L, -1065175718193252042L}, + {-3443398620200795730L, 3828176865585432313L}, + {-8921877650888014333L, 107866992902620257L}, + {-2549654053467481876L, -5050580673000189621L}, + {-6634007310328959288L, -876193222819744972L}, + {6662969652277689957L, -6841284783697750392L}, + {5704789109069509625L, -2476715163962031661L}, + {-1307333292330657763L, -5491692411965571232L}, + {6533595699848914839L, -4499350589304206086L}, + {2206229619406776067L, -2351165617492036434L}, + {-7059181012292774208L, -9115366817762017529L}, + {8587013829275411963L, 4388678051800734512L}, + {-3759394797281060169L, -7053509092813615390L}, + {-8332558387862436192L, -6896020076406818425L}, + {4058454963111191922L, -5286761064255899376L}, + {-2909318126609562718L, -6911874830505973438L}, + {8309425769040304384L, 7849379961650314497L}, + {-3332518656544710523L, -1692848726219162872L}, + {-53840526904216763L, 2255977371922379760L}, + {-4392299612463469408L, 1581073356587586804L}, + {-6495163012164872108L, 2231393466511510482L}, + {8283822043324591205L, 7499731676314211199L}, + {-3839429045227492113L, 7510349338395860967L}, + {-4554258591908844950L, -7317144759563080195L}, + {-8717791527048532273L, 4978792217011582827L}, + {-6680294812840082731L, 9152312282907380651L}, + {-1514076315369906827L, 3598370015785027284L}, + {8342331288999106348L, -7203007516130555934L}, + {4467472370913596089L, 6812568540862734900L}, + {-5258687569970231267L, -355677718169180333L}, + {6428083210523097473L, -5287418510282857745L}, + {2293947403016663486L, -5220278527068998730L}, + {-5526361602248141114L, 7996660119707051676L}, + {-7270937093961275072L, 5711622628080961541L}, + {-7226206738482320242L, 8598438917671031500L}, + {-267988759137059367L, 5431685311506687936L}, + {3757842653020528703L, -3297692481111911080L}, + {-654142607214292501L, -2962827219142864971L}, + {-3877320323095024097L, 8842445126378196396L}, + {-210352008325460011L, 5116823845142598386L}, + {-3777353653906366683L, -601473431267226149L}, + {4104559760354145145L, 4701224169495508799L}, + {6351620637332827086L, 3205977800898050414L}, + {-3953047538968937343L, 6276768727993298797L}, + {1977509989365985520L, 6409342957977133586L}, + {-6096612777648073834L, 6707983202497286472L}, + {3655449697279862217L, -2885904157317690348L}, + {6371929595416244955L, -6982319672407259043L}, + {-6719663260573101322L, 6074544765480824486L}, + {8235058461435871026L, 7218535018958732569L}, + {8223610568265677874L, 5036593928131829216L}, + {-636776168225445543L, 7126947243644292165L}, + {-5658531495972000806L, 5976061545413357422L}, + {-1315157075774308702L, -3587640206384793862L}, + {3318184564168373738L, 3667606843527529680L}, + {-3870791042207323999L, -749752759518101873L}, + {-5761074459524531162L, -3904416599422058280L}, + {-7589695080417675674L, 1298670570171716776L}, + {-118243652515378968L, -4089007496976104453L}, + {-5606050504941145854L, 3363647473385925878L}, + {-1682232575263053834L, 4346070814778364812L}, + {2064607730151462051L, -742205065568789939L}, + {3860046528687723210L, 5639663483838395500L}, + {-6935238833286905572L, -619950249601147230L}, + {-1526898475961616862L, 8069505502923900297L}, + {-7786760789279579722L, 1492861118173755697L}, + {6367271805286224450L, -7496769528088253126L}, + {-4333115896551664911L, -821727603931953051L}, + {-1229178972379399952L, 8730035857323100178L}, + {-5406430689127328314L, 4231658348135315593L}, + {-8536830855104540258L, -6071104864716272619L}, + {4592858633504932985L, -3006733148669100477L}, + {-4661004590562426651L, 4357632356262471192L}, + {1900079872513330236L, 4716191579745290515L}, + {803518532278716272L, 3567557066091193813L}, + {-7227731911919645710L, 2095640250881819683L}, + {-1531800249475624901L, 6537531379212203782L}, + {-5068571120099635260L, 9060033697476709270L}, + {6954901733800148115L, -1674928158449299724L}, + {-7075071323703859828L, -79790012159247464L}, + {1447978964456769515L, -3214394401554340995L}, + {860006115119071319L, 667210893626893467L}, + {-2067420548322589555L, -3021927277418583328L}, + {4638996254844315967L, 8154077006989858919L}, + {6983236581726963935L, -3528830910837705182L}, + {6708882819304554132L, -5694112128251960949L}, + {-1077037295677468865L, -3503242918302157372L}, + {3623478619549261514L, 6180056827434419475L}, + {-8551083693862102837L, 8556339763668418694L}, + {-6864926796047150583L, 5028306725838573487L}, + {-5583309839740166644L, 9027564656608576889L}, + {-2047952294766573645L, -3095287403842609759L}, + {-1296070923862863512L, 6790190055329304693L}, + {3533321735634917235L, -9033799480884432612L}, + {-1137358684259757076L, -6356732617214670827L}, + {-8080333153054443456L, 3334370468254151878L}, + {-6770927466908143968L, -570402506200030937L}, + {1677314511582577698L, 1342654560043637898L}, + {-2630259631962080464L, 7385442738096893062L}, + {-1793645900673563419L, -1723552778901560418L}, + {3600237620008462975L, -1202654027148639997L}, + {2180027379579890660L, 5542738931909800056L}, + {-9043677058766520350L, -3326672003520699872L}, + {3962397017521642626L, 7663197079112974029L}, + {3977072778934081031L, 1443754962703183004L}, + {9036155278583684186L, -511483942672047429L}, + {4719201700299004978L, 3372713474180665433L}, + {195773270223425425L, 4606867324868612441L}, + {-3391740091956199499L, 6977786383238923035L}, + {-4297719063714682956L, -5205502438632599866L}, + {2518769717461479967L, -2278000373378640850L}, + {5163274893178164221L, 7720801366773322067L}, + {-7935837524015792569L, 7113479099627093520L}, + {3725316512735597929L, 3063198825928438389L}, + {-6062355987398187561L, 196981839523103554L}, + {5072788521812186052L, 2181699064151082790L}, + {4756745374124465344L, 7250108599025853073L}, + {-6691048140593722302L, 4415088046869436277L}, + {-4453427560142816958L, -2106924769861351639L}, + {-8908616043104241784L, -1019376309451773039L}, + {4680671232907313257L, -2174697625835016191L}, + {-6131724261229112714L, 7856591897252847779L}, + {-9108450687466015537L, -5507621728320366418L}, + {6365495657268753375L, 5450431121738155020L}, + {6448165814018765014L, -5612695438889065911L}, + {7071162731007451983L, 5392474098323048148L}, + {6828906714271770482L, 1502254970953831345L}, + {-3559294295246311028L, 7553612275548812830L}, + {124771238363526084L, -4798796425975932412L}, + {-3293309753712400861L, 3954573374209069808L}, + {8896706306255876093L, 4253298990076074483L}, + {3125408161217615213L, 3803700255679029945L}, + {-5861463414798312654L, -4098195255457814724L}, + {-9036260382640522754L, 6369652912950273493L}, + {-2941595857477708459L, -9113821633105909829L}, + {6033142563060557598L, -9020580934062204557L}, + {1099630200403990563L, 696624502470685602L}, + {7959429886791854178L, 8452651730508924913L}, + {1535421567087429521L, 4681006148666640475L}, + {-3523681894692531197L, -7132650741735849542L}, + {-3906144409472427412L, -6072298972533296356L}, + {6483996772781688720L, -7756906715255122537L}, + {4132319255708563987L, -7604430518775079159L}, + {8769726356542128993L, 4800289188839276316L}, + {6738613111825331757L, 7396330301554136907L}, + {1764580723100293334L, -5184137923839863797L}, + {3299019025645495247L, -8319517036261810990L}, + {2239605653730261397L, 154189014771898002L}, + {-6200467116936956633L, -6568202627332369288L}, + {-6291344345384672622L, 5354839767793808953L}, + {2565928296401167337L, 3115419636555194066L}, + {5329865919971566807L, 1719896645598205708L}, + {-8575034623756510146L, -3669000039462402717L}, + {6368322753797090715L, 3689449136956819472L}, + {-7493350249074734851L, -5214369489577428826L}, + {-1948050475401750220L, 884718130935295239L}, + {-2542388860306602080L, 999643815495444354L}, + {3132812952361473979L, 7117955964821677830L}, + {8662503282931471374L, -949428191468665471L}, + {-7226118518078524751L, -8133317924985805656L}, + {125513287940370920L, 1139709294781544858L}, + {-7105850358401444205L, 9011130779774299758L}, + {2873891704788790693L, -3345408941392632050L}, + {375644362554273808L, -3940052809605950557L}, + {8779595029680158187L, -2090878506281834613L}, + {6520575959918535178L, -3685955938622260911L}, + {6481335563279395683L, -6651860608291596670L}, + {-3958324538875210597L, 687933001376263703L}, + {2650332007800900579L, -3820496251684255429L}, + {67216421894692841L, -6273923576662698622L}, + {2892388889322576563L, 4142472054827014174L}, + {447031742152452522L, -5750532076318905239L}, + {2214867384342611779L, 1438016221944253759L}, + {3463418430384064877L, 7933064097770090377L}, + {-6736581145771083272L, -6636037761993868041L}, + {-3097757825887262572L, -3464203236850017330L}, + {-742646863032103227L, 8549751377962719435L}, + {-675900178715113798L, -3914104413182363973L}, + {-2232567950500061233L, 7621988165391726384L}, + {1712025609374863027L, -1123006467158500535L}, + {-3405265351896222950L, 1430535721297212626L}, + {-7357424915587192954L, 3465717092902363839L}, + {5899042778652661141L, 4222684223013113017L}, + {-7187291342974761805L, 3957487962438616817L}, + {3480937052474976673L, -6188589281798830120L}, + {997099418044934990L, -1527963556835294545L}, + {-2839517833272115276L, 8330879031487323662L}, + {8199436817352462608L, 6909954963993252775L}, + {9072737280134851879L, 5188978806423418359L}, + {839795799971829718L, -2860958804774185917L}, + {458252816075262707L, 894349972574391694L}, + {3252541827624060629L, 8522714392424847611L}, + {-5029727353658396637L, -5729345024622710002L}, + {-4967837872862091654L, 2804097617713186103L}, + {2146776628928215216L, 7992918702582258237L}, + {5403743629243841306L, 9019714016234030597L}, + {3306799506878402965L, -2944777525613883043L}, + {4468336141473957274L, 7689803402328019980L}, + {7023113564987990226L, -5353349038722192959L}, + {2871980174971968592L, 7052062369586092648L}, + {-6665846774723588486L, -7779984816814418003L}, + {-8521313230784523850L, -7075872948858809038L}, + {-2899150205599417383L, 3674168194855920925L}, + {1992195265166010323L, 6718020075048606525L}, + {3610880564010872990L, -8099380986026829265L}, + {-8962461672227066573L, -2708938433802853784L}, + {8499793696703179099L, -117949552342789801L}, + {-5174175353166984262L, 4853488592908239062L}, + {3773412144378555582L, -700152485305099197L}, + {-5377488598550438958L, -2221586125998783654L}, + {-227481030440141534L, 3571021169253497167L}, + {-3003034596327281460L, 6483608774262579967L}, + {-6010571883582226691L, -5383121100451058218L}, + {5285640267764709652L, -6202879186354479067L}, + {-9094570939029139554L, 1417266974034045473L}, + {3302183665375964446L, -5089891447239173791L}, + {8185803481915750000L, 5860584065404731072L}, + {-7832879598569001202L, -8462546539915269894L}, + {9185495476894972675L, -1418057708833821013L}, + {9021601549322560342L, 741355604462128395L}, + {-1033483127041468323L, -1998905022320810358L}, + {-9094719449194039442L, -1626212808185905243L}, + {-4246271926877732985L, 4840812948897464736L}, + {5329679602094503622L, 8649093324893765849L}, + {-3123609535190446287L, -361284439372155099L}, + {4714766142804686442L, -8136402947598538231L}, + {2489307805887894890L, -2356444220664306215L}, + {2987790131896782326L, -8086179668000672928L}, + {-2963677483725852236L, -2516942748088288718L}, + {-8529934738168520503L, -3210310985686262182L}, + {-6356353435089583010L, 3516503088278819063L}, + {3208586395891790363L, 4298931398837050951L}, + {-4407123126725047459L, -7765163037766468949L}, + {8157441934654253916L, 2843614390491890044L}, + {-6109838368688820127L, -2368186650405422497L}, + {-4389983853453341623L, -5397592659600112949L}, + {7652314184807664343L, -1427196053527089690L}, + {-4662723430367132038L, 120770956848949739L}, + {8667093623786488993L, 3070768203499473269L}, + {-3415543420133275181L, 6085467894486731971L}, + {4904278838452314694L, 6548926713722044422L}, + {-4354230232880600982L, -3272993024095048366L}, + {8861799057857753L, -6094996369966286538L}, + {3552811093870745879L, 8612973539161157048L}, + {8634119875383707854L, 1907947534981169433L}, + {-2732631755040740128L, 5182756388090293429L}, + {6518885727185543342L, 3116634721078149894L}, + {4341137614328678730L, -5388034631040110769L}, + {6793266319858946131L, -5418120590775304922L}, + {8047455342123276414L, -3727261839997080006L}, + {-866422210016420449L, -8852169901685222689L}, + {-2975253122827530056L, 5453714651394251460L}, + {-4030176003307022576L, 4842581852636998099L}, + {-4241696461887318612L, -3800892415646682874L}, + {-4753266504739240553L, 1412187783702418413L}, + {-7373316743164657129L, 642636635356175384L}, + {6048513984860600758L, 5869299884640974771L}, + {1814258330875604106L, -2878806132566885503L}, + {9109940689954894985L, -8812562607906103198L}, + {1579558970146774347L, -4017510485008247124L}, + {668478211668974619L, 6320024829637634074L}, + {8409518560944185002L, 3353220582345848116L}, + {7245729396754890299L, 5588396973718419901L}, + {-5114268398654367847L, -5944423628815401655L}, + {2956616124692577442L, -290106912204558888L}, + {4461886846778383058L, 2277783397013987244L}, + {959690196566065732L, -8814538937186889982L}, + {-7235204044940286838L, -8189358422666028931L}, + {7981158344195854661L, 4867006782544055533L}, + {1833698125790755138L, 6523032353281179181L}, + {7752754976810456477L, -7282290980488591008L}, + {5692118834710835902L, 8632235045305762587L}, + {-3793683786453929372L, 2693475423544308135L}, + {-5581772364636870855L, 3928278557991189836L}, + {-7470774962401733293L, -8446516023329576894L}, + {8780664591724430174L, 4286197667128074328L}, + {-7663125741516067028L, 1559881424666449109L}, + {5829471574991825780L, -1699504516976991348L}, + {1182333455500273019L, 5353082458342633232L}, + {-1726270951016459467L, -3454492226798936731L}, + {-2746428321520070969L, 3021238741736368676L}, + {6832833992125314751L, -8702581179293653579L}, + {-3990613509805030555L, 8667205036761326617L}, + {2400486545587757625L, -3000524943838505376L}, + {-6598170744898189777L, 2759511703193262743L}, + {-1995198747364774857L, 9008233307559279188L}, + {-3645842663215618557L, -7385147240487509438L}, + {-6553956802949933979L, 6965354958414743421L}, + {363585666263112429L, -4882210177421749025L}, + {-5656547416142849554L, -4050177253764422541L}, + {131159332135711557L, 5133143837072648253L}, + {4242991056913343886L, -6686962481360868108L}, + {-4674809189780845966L, -3250341762564229866L}, + {-1954374021725723642L, 1323620250067427930L}, + {9000512499144627986L, 5548743979937884843L}, + {-4966087500556332423L, 1629058188872823733L}, + {-5368443575882114199L, -1654000784989387712L}, + {7898708771797640436L, 2086542013295426142L}, + {4954393344642394763L, -6263444864756732931L}, + {-228876611915096824L, -4537215972588867693L}, + {-3517612841169834059L, -2765341318717509735L}, + {-3181203061349135348L, -508056924812247324L}, + {-7887316482076885972L, 3685431341741839088L}, + {-7491168484443218074L, -315834147890523005L}, + {1505841500971991620L, 2429709964985541076L}, + {-4819676400227780409L, 1773949406412424848L}, + {-5600600902750799703L, -1641786959599535542L}, + {4287196606575127498L, -478264408105952247L}, + {-6631038754487834066L, -6917616052826791264L}, + {-8562057237102997949L, 363106954233931060L}, + {-3310437032247565299L, -1481298033384594105L}, + {5856634576804593925L, 4789755933237089305L}, + {-1659423729330836678L, 8494320904037636560L}, + {-2785469434848827216L, 7947848915676623091L}, + {-9178954688981005208L, -6785118745114422741L}, + {8284532255782100018L, -9084098449354029433L}, + {3932114027983614574L, -6289978089305485110L}, + {-8735736194352900940L, 1405162867455330917L}, + {-5947824514040167701L, 2919798360124166543L}, + {1555054962173652536L, -1367989015884168404L}, + {-1028318040091115332L, -8568997691227678605L}, + {4142937213480146786L, -2370901494422112752L}, + {-2819444980269809917L, -1308444741477082853L}, + {-2903074845803234197L, -4366808985359220640L}, + {3718049583878739327L, 4354690312963727033L}, + {-5493173480792612991L, 2989222282329614806L}, + {-4746130552040956231L, 4496455761262808903L}, + {6244568873371787043L, -7185280716865151881L}, + {-2997679871934966832L, -7309017646763845518L}, + {4047215048138865730L, 6980804018930957198L}, + {-6551789563963923059L, 2916207770637549836L}, + {9086055720517286271L, -2714494659452767480L}, + {8876034907713774156L, -3821387241491356709L}, + {3680389259422527058L, 2196589891375455610L}, + {6042866802807055050L, 4754255664635533276L}, + {-4886080504692397375L, 1725619517599492655L}, + {-7166197738900036643L, -7243540186236866594L}, + {-727151388570173900L, -1634001379810212424L}, + {2438604478622089045L, -5055210733955393661L}, + {-8782162061024071951L, -5174793973752794725L}, + {9077567357215978574L, 708556034239591714L}, + {-2871872737471270227L, -4708678750825119057L}, + {5320002012835335589L, -3526176864908362243L}, + {5539849377632910446L, 2462221416305069443L}, + {7555126502803598608L, -6755206762366162750L}, + {-8125224475094342490L, -8964598482310477564L}, + {7417955058148509629L, -4872283382423985221L}, + {4176877628224197597L, 2859364539165637414L}, + {7598278370710374380L, -5131602648378407232L}, + {2265897989342130546L, 5814327006378924467L}, + {-7061482734014550086L, 9021575515219812736L}, + {1468468196263413305L, -2354059920935567217L}, + {68682113048681479L, 8070600121219547337L}, + {3762225435622216659L, 7301822979322435545L}, + {4581877841476416419L, 150382900142393599L}, + {5115735211430226046L, -4547351323713652974L}, + {-397731465197117692L, -4450390472569952747L}, + {3802999106815691779L, -8622666519332587528L}, + {7574760794857420046L, -7880900128621810138L}, + {4178197313545546553L, 8601353854513781244L}, + {9065628242529864979L, -5591534616375481129L}, + {542937206029962193L, -5953723718608560239L}, + {1542373631583440917L, -4196619194839329674L}, + {6903559734881147673L, -4316576911841534837L}, + {-2071796881281526902L, -2370970960555427167L}, + {3779795498327194080L, -4298546406843841164L}, + {-2217268270456792594L, -7501440969788317177L}, + {-8059036377920200513L, 259328063542822684L}, + {5425988266816609684L, 4575515416863828865L}, + {3561830549061618056L, -4771952364404768277L}, + {-7500972620191462258L, 71975804172456571L}, + {-6776359714207180134L, 6900148804315605370L}, + {-5775998075012891173L, 5004232704182523237L}, + {-7755164007855727652L, -8433929914715590664L}, + {-4908348827451399810L, -3301072556359365892L}, + {-1162366502935483389L, 7384541007136416566L}, + {-3581470604892760162L, 1976805054171796726L}, + {-1434370488502028008L, -2547401488641472132L}, + {-1493293905909468959L, -7441839474594455138L}, + {-6762524287730181241L, -1601622492184803904L}, + {1393564479464918401L, -3009814218133425849L}, + {6717807842217858780L, 8165340015547077095L}, + {-2269779449488763938L, 7927691835893341197L}, + {9119207083214966580L, -6786708504775243266L}, + {4437289221718108033L, -8954685188941013035L}, + {1991815488616873724L, -8103624658829230585L}, + {-1136008736729825773L, 5916992738852984881L}, + {6919259317959590395L, 8169647393497828250L}, + {5700567409540575886L, 3944594914853142763L}, + {-6511943523783520343L, 3357295622932201334L}, + {8471138532439345892L, -5702753540740804811L}, + {-1261020616469785625L, -5601367572994175866L}, + {-871122257839774394L, -6976984597391717235L}, + {5853266956701599170L, 2179435702096663547L}, + {-2605324811026081L, -7735967841074233262L}, + {5645723143070327343L, -5300356287831138464L}, + {6678903618140079830L, 558130329295762466L}, + {-8243425527465830189L, -2753667594936483651L}, + {-7366977412613262267L, 5174687824180692399L}, + {5554112623362949635L, -5127585768737053004L}, + {8508696414094887570L, -1823867105900064766L}, + {4526724121376344377L, -3708548295144862203L}, + {-3066464409160921518L, 8089012003806475311L}, + {6423971479710566480L, -7039855685147014402L}, + {-1301150937530073813L, -5585328718840536037L}, + {7047171805158365362L, 8120759358342535720L}, + {6607488204808324896L, 3901947263714529520L}, + {2550589198730302889L, -1984225587532390244L}, + {-1508652597994003459L, -2625033096378578368L}, + {-8797285250854566260L, -8253763814000785373L}, + {4531577529333440300L, -4130829189401243467L}, + {7171511780196023810L, 7669326050720755710L}, + {-8696995432677729109L, -4993075107798409464L}, + {-1038277725665095082L, 7849644114484248935L}, + {-4030021971399704454L, 1256768363928500996L}, + {-7142316504058264789L, 1252978987744068438L}, + {-8690342808784496917L, -6354446673649917336L}, + {-3538025267466743323L, -7107557983957120854L}, + {3030344740150338756L, -6398796188997538104L}, + {-5434476681454308336L, -7496500108057908992L}, + {4747881963413479619L, 4331614803740895864L}, + {6649081146297801785L, -7539581662252191545L}, + {-1340297105335493395L, 607361016476543345L}, + {-2345199575979290182L, 3757829078804583621L}, + {-5142497021023029281L, -7853754814637441930L}, + {6590959395881104212L, 6033816056225283084L}, + {-669027690510749039L, -5598511059038889050L}, + {4713909714515252237L, 8498930096032167029L}, + {6334133652957330690L, 2179067576579471054L}, + {-4130611448171970254L, 528954176811746781L}, + {-8777249173946876665L, 6460005588985419673L}, + {-3777422122544011758L, 2949786550955297825L}, + {-4139822748883105829L, -7060522727358656049L}, + {-85322879655457932L, 8186136004732221397L}, + {8510613507788926362L, 5121599937034700924L}, + {8480533752847008903L, -2597744666135972005L}, + {-1501849715563565256L, 59714163236198638L}, + {7144010316023561074L, -68619869987424240L}, + {7071721153639906878L, 4787691242484650034L}, + {-2413842258996393407L, -102302437317144586L}, + {3829076351340781609L, -2319803825930028643L}, + {3904259427140354464L, 8797809088167232571L}, + {-2423161203681766273L, -470372639707402796L}, + {-9222948412120414441L, 2461249821658147313L}, + {2232806743868046887L, -2392759272414380666L}, + {3459293971647694135L, 4210665238486533367L}, + {-4958044470517187570L, 2672187701402147373L}, + {2702008978364322255L, 5638626575506030561L}, + {-5230685167113972622L, -7617392617133523896L}, + {-4777581725252095139L, -5140368461179091836L}, + {-178566492057125337L, -6847413203152532992L}, + {5473668624447677467L, 183117619671776212L}, + {-6025569476816496835L, 6468191562561708163L}, + {-1758476046405271590L, 1659198619774233309L}, + {4318010125119483290L, -4823834649924404602L}, + {-5001898604592523465L, 8911108370391112613L}, + {4496672693040208250L, -2259208634242191704L}, + {-6249539806063036132L, -733362499880552249L}, + {-7752211883834007080L, 3335016862478247633L}, + {5401928633460905475L, -1235856076215536659L}, + {-7924780124408034823L, 7205431551907269451L}, + {-5852842870036885474L, -2844635853105127428L}, + {-1507586788733048669L, 4335468969213182987L}, + {8723145826212343490L, 8281666246893648997L}, + {6322146995759068109L, 7484504729026216551L}, + {7033327335320195047L, 7165769114010786735L}, + {2731703606190537636L, -9199202980814290025L}, + {-5700197206770306283L, 7961233189193040547L}, + {-7681929128588407075L, -1127459956109423435L}, + {4915318349456884393L, -3186450213454571240L}, + {-4365674444257230772L, 6196235634481915881L}, + {-618412543643891621L, 1212876310516573701L}, + {5389658231644689771L, -4706000143957565510L}, + {-3464092788986188235L, -2872909288794957622L}, + {-1050158483149088836L, 4121143610298397281L}, + {2986789282075383014L, -8242619029520357911L}, + {-7095920626607872836L, 9003605662221032036L}, + {5041839261426701960L, -3912891411490985358L}, + {-9180003565648806832L, 7225541720051129724L}, + {-4136797423318912582L, -7424404802325061838L}, + {-815263725971673785L, 8781179913689849178L}, + {7751482036034122791L, 5628918479571946112L}, + {-6582902412740766080L, 584288259370869254L}, + {4948480397753687589L, 4278919042846414482L}, }; } diff --git a/src/test/java/net/openhft/hashing/XXH3Test.java b/src/test/java/net/openhft/hashing/XXH3Test.java index 4f01800..97b5eef 100644 --- a/src/test/java/net/openhft/hashing/XXH3Test.java +++ b/src/test/java/net/openhft/hashing/XXH3Test.java @@ -23,15 +23,13 @@ import java.util.ArrayList; import java.util.Collection; -import static org.junit.Assert.assertEquals; - @RunWith(Parameterized.class) public class XXH3Test { @Parameterized.Parameters public static Collection data() { final int maxLen = Math.min(XXH3Test_HASHES.HASHES_OF_LOOPING_BYTES_WITHOUT_SEED.length, - XXH3Test_HASHES.HASHES_OF_LOOPING_BYTES_WITH_SEED_42.length); + XXH3Test_HASHES.HASHES_OF_LOOPING_BYTES_WITH_SEED_42.length); ArrayList data = new ArrayList(); for (int len = 0; len < maxLen; len++) { data.add(new Object[]{len}); @@ -60,4140 +58,4141 @@ public void test(LongHashFunction h, long[] hashesOfLoopingBytes) { LongHashFunctionTest.test(h, data, hashesOfLoopingBytes[len]); } } + /** * Test data is output of the following program with xxh3 implementation * from https://github.com/Cyan4973/xxHash - -#include "xxhash.c" -#include -#include -int main() -{ - const int N = 2048 + 1; // 2 full blocks - char* src = (char*) malloc(N); - for (int i = 0; i < N; i++) { - src[i] = (char) i; - } - - printf("class XXH3Test_HASHES {\n"); - printf(" public static final long[] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = {\n"); - for (int i = 0; i <= N; i++) { - printf(" %lldL,\n", (long long) XXH3_64bits(src, i)); - } - printf(" };\n"); - - printf(" public static final long[] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = {\n"); - for (int i = 0; i <= N; i++) { - printf(" %lldL,\n", (long long) XXH3_64bits_withSeed(src, i, 42)); - } - printf(" };\n"); - printf("}\n"); -} + *

+ * #include "xxhash.c" + * #include + * #include + * int main() + * { + * const int N = 2048 + 1; // 2 full blocks + * char* src = (char*) malloc(N); + * for (int i = 0; i < N; i++) { + * src[i] = (char) i; + * } + *

+ * printf("class XXH3Test_HASHES {\n"); + * printf(" public static final long[] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = {\n"); + * for (int i = 0; i <= N; i++) { + * printf(" %lldL,\n", (long long) XXH3_64bits(src, i)); + * } + * printf(" };\n"); + *

+ * printf(" public static final long[] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = {\n"); + * for (int i = 0; i <= N; i++) { + * printf(" %lldL,\n", (long long) XXH3_64bits_withSeed(src, i, 42)); + * } + * printf(" };\n"); + * printf("}\n"); + * } */ class XXH3Test_HASHES { public static final long[] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = { - 3244421341483603138L, - -4302098779834749733L, - -2998166160713018281L, - 6864218090047839419L, - 6979084321315492338L, - -5731546056562700354L, - -6460328875922888956L, - 923809989133364073L, - 4187271766389786872L, - -1629980255024596516L, - -6095164084758671497L, - 2086176710598203789L, - 6543284205211650379L, - -5213522776729965383L, - 5545158833176453687L, - 6191585008302141506L, - -8983023575487778597L, - -6993173599622040792L, - -679721864292929835L, - 6982591615625134866L, - 2917394212576059053L, - -6639923505334063205L, - -2362153139612899683L, - 4776590923197089330L, - -1506670496010913414L, - -2647877581130602390L, - -3024194937172852654L, - -6786232254807398843L, - 29867523197922776L, - -4755612273762186448L, - 7027486771791057426L, - 5707990981978323197L, - 3829001002278603781L, - -1833995589090992552L, - -2859822223207566521L, - -822061951152501107L, - 6172313773566651166L, - 3002688263104272481L, - 2442729726468942826L, - 838920225343106725L, - -3625228911788322244L, - -3085758516746786139L, - -8838726273629984649L, - 147628805604629229L, - -8609901492927370359L, - 2523698187551014389L, - 6168573373090741088L, - -1129058501854041166L, - 6287935907341083849L, - 7111303459234964792L, - 2178159668141251214L, - 3355500812482858732L, - 7998592630692471773L, - -3657590562873574961L, - -6707964006400412490L, - 5984672195388902266L, - -4866191761727097338L, - -3867761180105420740L, - 5010507633288345206L, - -6360606695257557456L, - 891304432194930768L, - 891409307892263904L, - -4666213895286452910L, - -6150244752716240152L, - 7027844749552840021L, - 7577525643630617296L, - -2909908046638187264L, - 1269898915928975170L, - -1296685705337969741L, - 6880380907958913107L, - -5157697080261523794L, - -2384830554205610823L, - 7117698599495882683L, - 8436634904183317409L, - -8685705461888375606L, - -2099116977851507310L, - 7784639995868301609L, - 620173983152449558L, - 7875300522364621790L, - -8571663595578279581L, - -6074103631611676465L, - 4991809556790719000L, - 7182703058112323703L, - 6700847687881865453L, - 2471686449789799931L, - 5615843466129961201L, - 108638713672822205L, - 3583360813653880832L, - 4747956906537059928L, - 5998273219519720430L, - -8227785307205256168L, - -7813674951517583442L, - -6588167816065898573L, - -6862603585040654361L, - 5081695234398607736L, - 1329474798079286264L, - 2849157965221752315L, - -1791866940674927372L, - 4332646258279960296L, - 4180229147886927001L, - 22042537110060316L, - -2696513067094881964L, - 4479930798836342597L, - 7717940613376663979L, - 6494116526350833911L, - -197304122858742249L, - -4396092174831810083L, - 289832483284799872L, - -1407793616753546142L, - 8107749310172792421L, - -634728965402563086L, - -5703942985817925313L, - 1530829577509875692L, - 725468970373613536L, - -8861952843133984162L, - 2677458900969433422L, - 3204987178703259401L, - -5308372023803773091L, - -4001659458034098463L, - -4307920379982142578L, - -7679947731286800682L, - 893843933290517983L, - 4059405294108459720L, - 1831062127804751133L, - -2762239301578822450L, - 6439416643289274311L, - 7794216615102176353L, - 1300299527667998511L, - -8807326403944725397L, - -1407864491810865574L, - 5562548832393267847L, - -1909668463603883104L, - -3001908439859224423L, - -8229811775093055754L, - -2185505997709248158L, - 8747474804119761845L, - 3375976894941005122L, - -8687541524345519584L, - 7475418969225723061L, - 1090519453973870407L, - -8039787237657230770L, - 1464043301476531850L, - 4392840094176543368L, - -9069431037609626595L, - 184117852034042369L, - 3048613549567428513L, - 8360545369892314479L, - 4218067793502522363L, - -1984361661054820977L, - 3359102789277797744L, - 7846237042486223698L, - 8441054814755521322L, - -6067811722142115057L, - -7157356563671886865L, - -2021770978571166827L, - 2181025843643822270L, - -544448869202488473L, - 7057264048203590026L, - 4363323697043225181L, - 288118730444504008L, - 6623265038156431800L, - -1346676098681766085L, - 6693111459824679536L, - -5826625922074103454L, - -3486949479332473670L, - -5491430220943863042L, - -7571085429759204806L, - -5040253774339356206L, - 3305212073815689334L, - -4916812550925428252L, - 3791981966901325707L, - -122684436810232675L, - -4859495698099370447L, - -7070496757192133073L, - -868377069569577871L, - 8419145116270703784L, - 6800486273015600197L, - 4633342516797787668L, - -1661577990952520136L, - -334342790235531239L, - -8872817819424402897L, - -409486044664079154L, - 6190926389261136345L, - -1300830024987992860L, - -3395638269793024332L, - -8493538135787539363L, - -6621335634487712846L, - 1973828869629126484L, - -8925429074145354136L, - -2678123694384376779L, - -4225602364907809934L, - -7257068922279808299L, - -7485343360991292969L, - 2406538583069093177L, - 926637182534700777L, - 4630670481086444853L, - 7851742083103622018L, - -98392444236074312L, - 1142322156420818107L, - 7462750549553202851L, - -852719212082297085L, - 1478659643974205762L, - -6521398709638030532L, - 1345928530210989700L, - -3363927467796334767L, - -4501085897120438635L, - -1855175868195079840L, - -8957269249266743558L, - -5499424421497234822L, - 6823468430111213664L, - -8349332096263306503L, - -796191064979922279L, - 3070550474559678794L, - -7237539936935226606L, - -1467576285689886091L, - 8020665312084081577L, - 6549665319606165521L, - 8265205303228562057L, - 2959656348340404166L, - 3479620626361283295L, - -1809040706699436602L, - -6118995013506825485L, - -3703429629123416796L, - 5314878427138221245L, - -3374786619071663812L, - -6020893708387338112L, - -2099692294850961452L, - 5628155794800251850L, - -4036147416511180551L, - -7941600054572002747L, - -7483400491927447614L, - -720567278261368781L, - 3314031855271606298L, - -5471631794645557473L, - 8887891228392664673L, - -7960828123610685614L, - -766265380117391950L, - -4017904512890559451L, - 3478074185490226921L, - -7553920981498126005L, - 3988562325861820517L, - 209643423615708418L, - -2464819451665246158L, - -8631718977760664612L, - -4893221336143393409L, - 2390264798730683615L, - -8300749389255144164L, - -3549775289570958064L, - 6514441262456966668L, - -7301663820335638615L, - 4181559756778549411L, - 6215253578855337690L, - -7323335092456459405L, - -1860577032441476467L, - 3644299936077808538L, - -5161174126835724701L, - -7779787747613135503L, - -3446338450597548406L, - -2662609220502962318L, - 208946340318274486L, - 922869894074454969L, - -8428909140908329623L, - -6875524699939418906L, - 5154230294972327697L, - -5868880138852165350L, - -2697155020815738737L, - 6278899766774254324L, - -6124877505863871039L, - 6113186870348198684L, - 1328797232741421065L, - 8936960355443139766L, - 9069883653377839816L, - -6698244186639407697L, - 6633988379507542818L, - 4243888593320380368L, - 1299920470993756698L, - 2315187937474071861L, - 806120923801759332L, - -8537792935927015380L, - -751623313460664870L, - 2455098182130434513L, - -3041072155357054618L, - -5209258140949481980L, - -7784651030341623624L, - -8624281235662545565L, - -5185374153462168974L, - -8728622305551122108L, - 3633316488676598179L, - 2341850275669250720L, - 8998800880957295269L, - -2791108801739767859L, - 4207716787796156879L, - -4083554261407892809L, - 2977762250156739855L, - -6066243213313847782L, - -3134677742513834402L, - -5231660756514911289L, - -7916346081138370244L, - 9105509708951212631L, - -3071680532260795719L, - -3152428524199455707L, - -5276930195233923125L, - 1981446637702558747L, - -8822786060285469479L, - -3086453182842996354L, - -7521798164704108718L, - -7460429880600038351L, - -5031515429775225415L, - 5662627828449328757L, - 2804157867790593789L, - -6183934836359652529L, - 2425310972806241292L, - -7877162957672040682L, - -4575453773921540745L, - -6152892230011262930L, - -1554429781063399588L, - 6395550633581619922L, - 948199150697514149L, - 4123518706442132507L, - -8620024481834864148L, - -4627311960537433998L, - -1517263476517287336L, - 3087156144310177979L, - 802387854806242344L, - -8223164854162179626L, - -8876883825341271093L, - 6189924694943538938L, - -558048344469199000L, - -6388815497071843014L, - 7970082794223216108L, - 8943146030443257086L, - 1919558538884824162L, - -5413821296846136841L, - 8482255996292420949L, - -2059351044571046226L, - 8122315934009425936L, - -6002133579485340781L, - 6439465961707132723L, - 2763117897158909339L, - 4241846593057682886L, - -3156374353704014890L, - 3611310604513156987L, - 2539868227324188707L, - -3160603853021599046L, - -6694565052629228305L, - -2829087677596299075L, - -3855421753196086451L, - 8353874633819013271L, - -2485914493713180581L, - 2924901647540244351L, - 140830235769158231L, - 8924525771772034372L, - 1991645829771754924L, - -6409133430531739321L, - -2477349252564343349L, - 7592298137540200578L, - -8706120837264950112L, - 2330049856518978017L, - -1333715564956417750L, - 5321303278236129003L, - 1316603583801631000L, - -2052093890021786856L, - -2212919092132307727L, - -1138248150179747101L, - -7297574785915472699L, - 3159392081609537393L, - 5438969032594710113L, - -1117946266762888661L, - -3513962250060316650L, - -95470470775096400L, - -928547845419412355L, - 3064209748165139149L, - 5570740544374382296L, - -4848606292970499536L, - 1249733847255258336L, - -9081876379081045111L, - -3178350430540128617L, - 4580722282117591455L, - 4910338723691444614L, - -3861107435455294057L, - 2455351552393139588L, - -3098045343671378301L, - 1276702104227748441L, - -8725606894849543465L, - -7043526197674754455L, - 2543751490914779898L, - 1111188191726666289L, - 3299681536744686092L, - -4968407975804173061L, - -8443232222924958642L, - 2692856020311995538L, - -7295992543900831720L, - -835426980056055153L, - -7189216512060259212L, - 1546667140862204220L, - -5157738526808785307L, - -8400112152363165211L, - -2562446629278342489L, - -3984312152746163924L, - 263973571859894620L, - 5863738959863392730L, - -3750469576779228200L, - 2859093520615066384L, - 239574671716835044L, - 1758244848125395099L, - 4692926060224877180L, - 2328985435627410056L, - -712944964417726519L, - 7575628018175957835L, - -6461647485226712981L, - -9175844658802936237L, - -1791894645853433273L, - -3209291319104719345L, - 8435774909159574457L, - 3068904622159492539L, - 6405574310234631665L, - -7236310029621050895L, - 1939741827857698370L, - -2711876483320863546L, - -5191337944005182792L, - 851301927202074099L, - 7817558216393575797L, - -924173671401578135L, - -8870424728276452684L, - -5612135981154918473L, - 5352840780989627332L, - 3115501649750915797L, - -7282764488136203731L, - -4410122159075968274L, - -5112841868993719465L, - 1606611627835962209L, - -2564625118517656156L, - -7347999176364584697L, - -7520586016175454443L, - -3582872246453049220L, - -7208670274224679141L, - 1407185043226639926L, - 5548472899324259498L, - -3424704481698318306L, - -8898045228081312865L, - -5032961205984329240L, - 2319704565344125424L, - -1858090959206557106L, - -1847512527385111193L, - -218817722784924760L, - -4644538017574761086L, - 527762499588866419L, - 7682925460546142196L, - 2618673582975102782L, - -8339358073633623035L, - 4632344075623474881L, - -2634725682046056737L, - 3264353773883015103L, - 3450256920483368564L, - -8453373497678191816L, - 4324811352547234228L, - 5231611966727557421L, - 3935063678731059941L, - 6338309551930394802L, - 6622686033142507173L, - -5278373537512798709L, - -9063940204441257539L, - -6333833756325058415L, - 3799491381076234981L, - 5050905817684546674L, - -796624655126841621L, - 8334872366472578300L, - -5288752267258476166L, - 4335956913966038392L, - -2247074774901543705L, - 8474035569080943503L, - -3170167932314701995L, - 6999756768956410897L, - -4451078577344071588L, - -8433054951584831409L, - -2640652121643463448L, - -7045594934288710931L, - -4036935141669708886L, - -7734407512972194081L, - 2053541054148333962L, - -566653752431971002L, - 1898804146829115409L, - 8507984725723339263L, - -3742788731083462619L, - -614166854038590657L, - 8147682807535759575L, - 2813322236228401990L, - -7697111451322995338L, - 8023578719528819358L, - -1666048881205334172L, - 2861705383918865808L, - -2067264870309406817L, - 1544932780962992751L, - 5752963315823730718L, - 5563418456763501584L, - -956763705026909993L, - -6723021793890249884L, - 8199491799885937348L, - 8254326245904567972L, - 696534455436688862L, - -4526166123204455007L, - -1244479971115743946L, - -4712028527008594695L, - 3845317619056596538L, - 1397508695414938292L, - 5199778266100306999L, - 7649610185133409821L, - -7736979936936405855L, - -1871499676764587199L, - 4089210433244498057L, - -5319342193649020117L, - 6510328602034064204L, - 1177990759783856649L, - -6211536889696831922L, - -2806444732697667079L, - -5534324430749159010L, - -6189402282341917673L, - 6327177260956086170L, - -8199327532062722025L, - 1757637089703623521L, - -1083020196125888231L, - -4027554827881183115L, - 2536452110533397141L, - -5283309880767903892L, - -8726185014741079280L, - 5870565960746070417L, - -5981985584772708231L, - -1932877698882443840L, - -1002343255004640521L, - 4369245457815499473L, - 574307157338267836L, - -9022123090729501652L, - 289683520338718123L, - -5791631171477648402L, - -7088072188409060385L, - -4659987534525277948L, - -6573587402478059370L, - -9147189283662432041L, - -4621406226758810332L, - 3827992897413425855L, - 8237187128340177815L, - -2575127860924571660L, - -5807831166865245102L, - -5362714198312494492L, - 4800564949032048849L, - 6232971559544384156L, - 5346264270546834545L, - 4418021854956695145L, - -2503709442294180811L, - -6705525727229877941L, - 2807916716409994404L, - -140901784876025870L, - 8341454749980902529L, - -1877846120130857988L, - -5151008775080326365L, - 4141948371168606708L, - -2991396496641036974L, - -8231846204849830109L, - 8817247101288954387L, - 8987037987198023072L, - -3653961272252403667L, - -5540876112254432380L, - 6630760576601451124L, - 3952853764187760519L, - -2752207231177565438L, - -8990910782429153994L, - 275029084438740989L, - 4377008995333363792L, - 7821963094129670639L, - 5910345261804604591L, - -4676534586425310858L, - -893427896035022872L, - -5107326322974521170L, - 5928147272454832468L, - -6838714257802993131L, - 3828181535474040080L, - 108432455104664877L, - 6134860905554719891L, - -9006906057728028416L, - -8785087250130628623L, - 5107258923997586783L, - -4184502077870950738L, - -4196994343382319067L, - -3602525630290645804L, - -721602986806918388L, - -685749048932716724L, - -2226124441764103982L, - -8444470437189672337L, - 5967905323104782609L, - -774529365691330376L, - 5317411683068394421L, - 8753729036148149823L, - -2600284926580864832L, - 1501264369203023713L, - -5589106565383836539L, - 2671769607792597675L, - -571916257780128106L, - -466398102722097434L, - -8668321984643614166L, - 7631202114905008803L, - -8647922451448787023L, - 8025381490498356948L, - 6049280950696679244L, - -7696482417187458362L, - 7140438358861456746L, - -4921885565559803566L, - -7027307783313071980L, - 4879598629629415952L, - -7342155744245645378L, - -2263378697656156016L, - 3707257119850556629L, - 2267112971575522392L, - 4213162373130191016L, - 8934898250536865564L, - -2149765792894599153L, - -5375160376931751557L, - 2196544121130659101L, - 1698916734136113996L, - 3433172695894846834L, - -2849259564218003615L, - 3254138956861413927L, - 1285929622626453198L, - -2349127797610817522L, - -1191286947825336074L, - -9055971338481310193L, - -3525928115330914396L, - -3227633136719463166L, - -133501853014392460L, - 1099153576792978915L, - -648473507797745243L, - -8947946509829984393L, - -183277647411867477L, - -8972836557830117056L, - 7599024178448012477L, - -4558685557381095142L, - 4767843848744584145L, - -1522308275842184404L, - -8584574042672861403L, - -1734332735592240813L, - -5832090116698921823L, - -8717779938268738600L, - -1881355893097809021L, - 7715529933819950784L, - -2289162375063823266L, - 5628801095532857454L, - 4961594313236250573L, - 4618832900030681591L, - -2860026598356511432L, - 1961029532371905567L, - -7427116119564073711L, - -7663272674507523073L, - -1432342159197328837L, - -6656742466964663442L, - 1884610673731472834L, - -3810094228658892044L, - -6616291605664442115L, - -6089433736056798518L, - -7473225570871869756L, - -2962461410122376636L, - -7732736326487208707L, - -4443012182604465346L, - -6157220788020380465L, - 4600227015044805999L, - 4469639125734518912L, - -7792518910888390519L, - 1994555386333163764L, - 4369373061497876631L, - -4738249058452865067L, - -5995135073617675417L, - 8575145712582277328L, - -3326852669647946366L, - -2007891227481667403L, - 7761466597038557448L, - -7224144129768088459L, - -6066361559768252258L, - -4068105427650671702L, - -5560889521429203904L, - -4762527649365520713L, - 2694767757294725688L, - -98412761475871782L, - -1686751510820366009L, - -8638747288926132295L, - -3606421426295459375L, - 703911580424568845L, - 3806874684410471199L, - -5118211203482914183L, - 3783835693585708905L, - -4147496567901501893L, - 4328139758484363106L, - 3028068134370267202L, - -5966389813687232408L, - 2195469898148267913L, - -3080166474377317430L, - 6412533502918649688L, - -4801061500654703956L, - -554194900129906123L, - 1486000469436139740L, - -6971589411333019409L, - 2647463349908157318L, - -6754094203714628854L, - 2314399046579224435L, - -6177383374280917075L, - -5619632493646738964L, - -7301831206207675015L, - -5527516975398904813L, - -7206298956882517419L, - -1535337994919517848L, - 725107219148423471L, - 1938195538047669437L, - 1028829726878266547L, - 3981352596771855719L, - 4637441575637536278L, - -567364300216533096L, - 4215820779392244698L, - 5791138156269639416L, - 527001488112788484L, - -4390338125863921979L, - 5557055272452535368L, - -205316410586789577L, - 6952133288635206796L, - -7457518070084443694L, - 2002018537802900078L, - 1561023860546606398L, - 3006183850758749007L, - -1361037422909233361L, - -4203933835330884180L, - 7500988945823273736L, - -3010872765453549672L, - -3781827987408697259L, - 7460277383018710734L, - 5250710645655626569L, - 1109553850343924028L, - -6498085059809326090L, - -5879222670885240061L, - 6210613100795379620L, - -5759675374559290972L, - 2824738880545011656L, - 3213468672819532759L, - 514328750496380347L, - 4470285007717204101L, - 2269240343629252129L, - 8714859525098129755L, - -6932578361476642118L, - 3219949239213817308L, - -974585298959970878L, - 6482527911604968876L, - 889153561428168470L, - -8207616222981108363L, - 2386860797138412452L, - -6749686321997906685L, - -1105424552884318985L, - -3137963539903752699L, - -5296550634024189868L, - 2919221292190747486L, - -3991521756182858814L, - 3802413126716557908L, - 4556158013211621930L, - -1956520472596138305L, - -1667618395239727751L, - -4948155010712448139L, - -2667546434479018044L, - -5192951416537530780L, - 4474564860866849514L, - 6795504197096101870L, - 348555520492747776L, - -9152654684800879935L, - -139520144005307559L, - 8655115078308054377L, - 4640578432082008138L, - 8526214307008571064L, - -7079091919397494753L, - -4852301075482608956L, - -6726381834527599283L, - -467175742480032731L, - 5092513639393893997L, - -916781769295487406L, - -3306005301217276910L, - 5711239369216246603L, - 7411369067342514714L, - -137089609471843551L, - 2197853544547148264L, - 6994895994975015585L, - -3993584670641567357L, - 7324113989979846776L, - 4848201612974985071L, - -2319141888027790806L, - -7727572350242351429L, - 3611228677421118756L, - 3254031939911056022L, - 1315862663037871882L, - 2762719496333050774L, - 2441476684596910583L, - -1751985778109806355L, - 3156518557955714028L, - -7474525109128332157L, - -402634945481420093L, - 3711042493776857096L, - -526618219268616930L, - -8956423818433397438L, - 3318951429850234648L, - -4065748355754556535L, - -2974465318794034149L, - 9156201933336414671L, - -1224004278953882958L, - -5567810197150710613L, - 7645667176564158039L, - 7437954892140634061L, - 8595047667824297631L, - -4227841629446459104L, - -4073313779073810355L, - 764623093768368301L, - 4502563456929761688L, - 1027370723462817766L, - 7668869338814612684L, - -4780350365503382825L, - -6389061999435806787L, - -2133237830821026919L, - -618977682776693149L, - 467656057704319257L, - -6754479852919060751L, - -121796624546305099L, - -6164861615484187016L, - -8568598162483564153L, - -8182644091745100549L, - -3989631051916738549L, - -3812515520109109155L, - 5458479505950940580L, - -4068063356781230185L, - -2830766632873229698L, - -7592354330098913572L, - 5323147076973602219L, - 462800867816435413L, - 4002154584204048905L, - -803837213195276249L, - 270846859760410932L, - 339186719055655409L, - -1681073433226249949L, - -3172364168133842187L, - 4471576722877991666L, - 5796602822306813285L, - -7918394505018135767L, - -8099706435104488972L, - 3225305587851029418L, - -4366886220054887809L, - 7732358946751522729L, - -228816160482375387L, - -6429545033940023762L, - -4874531170284168803L, - -7919754354938613725L, - 4818550076091948962L, - 3907701057522316102L, - -2162109673539899314L, - -6296577330837677905L, - -5038523314786213767L, - -4182256071671167089L, - 2347804671767305901L, - 8781747195783722684L, - 5464112250608435856L, - 270499223000052613L, - 5387476652934255975L, - -2665753069813354951L, - -6640316903187366435L, - 5182130073111288069L, - 3324630100168604545L, - 6092224834024861844L, - -7314979478990434840L, - 2475323565628074124L, - 3744881942029260381L, - -4468245448047387416L, - -2514532843437356755L, - -8460931029051770120L, - 6058982121000846509L, - -5771467892492359246L, - 4284427580292476574L, - -4502826197302040607L, - -8909965133023702444L, - -5152825667036557377L, - -9001319942906464381L, - 8783326653870239059L, - 7169538748654303504L, - -7206711339673245443L, - -959892259265562431L, - -1673323329893911437L, - -5827914418805049723L, - -820830695253715046L, - -5782181341435499931L, - 2663734005752892035L, - 6987511185271585413L, - 1292089443730939651L, - 5587170596809636807L, - 8237809229146017083L, - -2235781308356196513L, - 5423273201690025713L, - -827014178432784464L, - 4410575469603649344L, - -4472642034035214939L, - 5360193252716249224L, - -4572235983836835323L, - -5433653902594010857L, - 4134790485921001466L, - 4485288889906709425L, - 1685824402735587758L, - 6091818520229922279L, - -212523426857309616L, - 8873690209863775893L, - -8812432523459654235L, - 8103047819338531286L, - 4614534509558570387L, - 4229082172984667846L, - 5484460792243331111L, - -2385763800014084246L, - 7030455160712580607L, - -4237997225503760625L, - -8124291737715145061L, - 6327782024255912635L, - -1059957986215325879L, - -4603394046555224246L, - -412280426794415941L, - -3912022758691365061L, - 8274283857906326279L, - -6679687570538459747L, - -6155809572519276859L, - -341344339192464824L, - 4137861550441588415L, - -6618940267671493988L, - -7291675023689911653L, - -7953871974818004574L, - -397153165830243551L, - 4399741193484513820L, - -7321827371527026850L, - 1338155597001139997L, - -7945100475342274903L, - 4522579580699730675L, - -1777997817650119183L, - -5064101783437092203L, - 1113553310062801693L, - -5709720543205442481L, - 772882345518435045L, - 8903336589907078605L, - -8789465120959251318L, - -7834044567177051539L, - 1770279151425541006L, - -4941283968572768930L, - -8127231558741248281L, - 737747628416269099L, - 1574449851957266285L, - -471282776174276539L, - 6739952936193376447L, - -2424982200476312714L, - 176022186483763915L, - 347356729555692814L, - 7550980861784622262L, - -6474882761637742162L, - 6769254801287215843L, - -7346044586598503820L, - 1815045574884249754L, - -4240219227462571370L, - -649819224919779208L, - -3697860834931443057L, - 4209607762757612835L, - 5512379227441488333L, - 2554702396243693813L, - -33063197416101018L, - 6204387436027047110L, - 1121696558750946811L, - -67713675745955613L, - 2900236341998750711L, - 4072627124871947361L, - 3411250942283240973L, - 3459019187218245290L, - -4931935198846519054L, - 8420402881327935528L, - -2700073972687127894L, - 4135622085465759778L, - 3115364578959809417L, - 7905907040079822152L, - 3117202331600018366L, - -6912405766950946927L, - -4526890208931001416L, - -8362196017109360491L, - 7990163642449120866L, - 8921333090931858791L, - -7835160532401884454L, - 2597345228860385242L, - -2019901582135813985L, - -734731610197007345L, - -4478738615320414333L, - -7971363857175568029L, - -4550695664824391599L, - 7004896942426055925L, - 3243444764663891458L, - 8221182849925835178L, - 8413639868002181795L, - -7599742913553767497L, - -4861871033227348667L, - 7180813616057727196L, - 4110358466985293134L, - -9163301540202343656L, - 7407431836530456233L, - 7168833492994704184L, - -3225184215180636592L, - 8550286352383434501L, - -4037242040051553894L, - -7019860459089371337L, - 6499568859919656194L, - -6517870390876058597L, - -8816903563531564452L, - -5488567103311833696L, - 7162975208461021799L, - 3231150263108104601L, - -6472825090155306196L, - -7112727281349161724L, - -8908480908774446053L, - -162138742916032914L, - -4934765719133081654L, - -5383597847234182085L, - -1457750799424768103L, - 2062788467226997042L, - 5195212083662151172L, - -7086725269988157115L, - 3216790230270684188L, - -6772983200597124262L, - 2139536380152189149L, - 2783400616608816134L, - -6309269121238725342L, - 8703327852945446994L, - 5986578967392046329L, - -8686234791137218952L, - 7147175926193618258L, - 2812520130705527307L, - 1012516456501023939L, - 7796658848573086967L, - 2642184550087192362L, - 2521303561751617614L, - -2372355039844318123L, - -7982908463432899233L, - -4773586301827797121L, - 4040904044293393487L, - -142670900232845920L, - -10691804562559377L, - 8453630879397574208L, - 5612078661433375152L, - -3592401183831123809L, - -1194636486876965628L, - 7144612844993582305L, - 5952025594559102453L, - 7768859735998504182L, - -9046596974248194873L, - -6171084369920910835L, - 1781418400960307869L, - 5081999630281512875L, - -5147831879244994539L, - -6245492622672631422L, - -8665204890652827995L, - -1175718303513980672L, - 8885449897820005156L, - -328163209321586593L, - -1445525508305375763L, - -2100999238041350502L, - 7410786050561217868L, - -7914164711220348362L, - -2906200250494490361L, - -867790952312765711L, - 5887767909251264450L, - -5789450489200739242L, - 1662159886119924244L, - 5012361370472355454L, - 3429745384914079292L, - -4445208736020219814L, - -5413763295704138557L, - 839374495111075513L, - -7648977736915073173L, - -3664832624688924839L, - 7158412277573249226L, - 7779305491962558566L, - 8039313349173431072L, - -4220847824862505833L, - -1939839155925934724L, - -8034010027834756500L, - 8475758752811450501L, - 1099214246266343746L, - 9186354033975902114L, - 2335697942068596836L, - 5125601667360226370L, - 6606318187238773479L, - -1182364933194642155L, - -1282696136769309305L, - 1154559731683162717L, - 2886049233756462774L, - 4825677492212933300L, - -9121350732551109877L, - -877752678277742358L, - -3266764465431864389L, - -1914199636241277795L, - -4687907120417383299L, - -474253911596715394L, - -7075290400477487025L, - 8134957124130148548L, - -2992238854808660187L, - 5996516183600836003L, - -371549095799671162L, - 3902975175457565825L, - 6605036583318392521L, - 1891100275270423451L, - 2119245665259072674L, - -834774890825819923L, - -231771124221128734L, - 3133196876747178672L, - 7298692169226203885L, - 7126455091552696586L, - -2143648506542037333L, - 2865309216991778464L, - -582169278536046195L, - 8080177625773872889L, - -2641866597771089394L, - -4210759777426999986L, - 8940623302154716559L, - 8753678355208533280L, - -6281297936039038456L, - -4466014453281785565L, - 6273362062923197148L, - 2333217083667471091L, - -2134695293413683177L, - 1638282373040657672L, - 3200622258378038793L, - -8777912174432066160L, - 4509402067996738269L, - -5444623700171973227L, - -4861257960719874399L, - -2931845644152220868L, - -2415035074251453041L, - -3415608992526650142L, - -1100060277548286709L, - -7950756431533405941L, - 2529778543681983619L, - -2509511542105356611L, - 25235701976844069L, - 3512243450460933893L, - 5497081699936367558L, - 8834833749235004269L, - -8786955172657476976L, - -2806229680204644453L, - -5310949673572257587L, - 7180989110601385791L, - 4574812998786692932L, - -7191136183375597108L, - 7817612065160053901L, - 4092147258927215079L, - -916694886327147203L, - -8155481011317235899L, - -6577214469178899288L, - -4704682976594284594L, - -970000750564611255L, - 6392037803435901919L, - 4653466442162924160L, - -4217569099833350175L, - -7494295064988163591L, - 268071204677339466L, - -3128139626778549626L, - -8490295735340959824L, - -5162368829222403127L, - -4379157681365371219L, - -4505869932044746193L, - -7725004848904746158L, - -1077347489733049759L, - 4372692724364737369L, - -6095523387109702205L, - 866555760732064401L, - -6043383891507219565L, - -5064298145687783678L, - -8284554766413268444L, - 4358509246174021158L, - -314402459279271878L, - 4534052702364464050L, - -5069975264209271430L, - 7618881160105474363L, - 4167592104901771551L, - 2277499839812963141L, - -5797737740917833733L, - 5386843611229288306L, - 322032948055534721L, - 8623908495470433985L, - 1464656873108399270L, - -143110847782655873L, - -3683505493125515417L, - 5263884653798534228L, - -5596816932431872850L, - 449263668055475580L, - -8209880385374160761L, - -6160876842633556933L, - -2822510119276015598L, - -1867833971803598158L, - -2743011208375680513L, - -562758870972224424L, - 5241707884356795802L, - 3044382044884310303L, - 4240643424518839454L, - -7202731734581844883L, - -8098501199143125283L, - -2550459180607677020L, - -1776717083783659251L, - -2343369089757631624L, - -6293279254462751659L, - -9100627021059872276L, - -1298100985130924363L, - 3390116780901102550L, - -4663999614093100429L, - 6916372370306791572L, - 1488349423055656442L, - 6773020852755024150L, - -7005014351468554871L, - -4753926923183579314L, - 5415870192658316069L, - -2670881940811475410L, - -7225213211793183097L, - -5703028807893997804L, - 6561444537664669662L, - 8939981796276591301L, - 6017910964940092953L, - 4500890776998912544L, - -1835018042586347444L, - -4191687948466793374L, - 4106435482907441086L, - -6130167349217050086L, - 620129892796426300L, - -6144158488464216798L, - -625006850515938527L, - -6682172611475406987L, - 1220842624016183584L, - -7098540157067814615L, - -4378743347226734130L, - -6508042393772984279L, - 5289282493574993598L, - -6781000719696595982L, - 3322666381578332368L, - -8173363279507413324L, - -3603049973704190207L, - -4316988796658196446L, - 914989291445423876L, - -305370752767861151L, - -6987550192802158001L, - -942676483343861967L, - 539036846465448158L, - 1605373100913987077L, - 7713068526230669637L, - 7241900405827926293L, - 186408038263119881L, - -2429472274603752977L, - -5720789098334319209L, - -6674769505767916301L, - -581393540490176967L, - 3124744789645879825L, - -5602915602343937931L, - 3263507419526132695L, - 6937077332985554718L, - -7919624999578199393L, - 6556190618267765484L, - 5682381095734864238L, - 7614251273120089370L, - 3395157685499349978L, - -6398328093992251036L, - -2651093395236575804L, - -2097470820892650054L, - -7267148748500151232L, - 5507274834982481157L, - -2194323672581532616L, - 2269493654210886217L, - -4216275761811372636L, - 7228709978053803804L, - 1544682503099095700L, - -8135200911288478327L, - 7339704802803690870L, - -9063598666954112733L, - 4249185982522288588L, - -4695745996091883154L, - 2627137268581003083L, - -2578238879441406084L, - 2429552460105156204L, - -5016405662860787559L, - 1213685060600888916L, - 5207480625629771054L, - -9039842400434871721L, - 9199909831090107055L, - -3171515520826634527L, - -1366973376209295366L, - -6750324026060931870L, - 8743899778045759827L, - -8621966377322960273L, - 4838450322903886505L, - 1788019071908015560L, - 4913822197134872906L, - 8309346613152344445L, - 7951951012499331460L, - -4689530477253691656L, - -375319494882093024L, - -1845044534505086395L, - -8796776862070375491L, - 5018318155817526800L, - 2586522091503534478L, - -4968582762284083199L, - -4927465852300428021L, - -2580812699959118622L, - -4904418483836862133L, - 4578001388519224564L, - -145427029490022812L, - 5605281842155781953L, - -8269674765102782771L, - 4873099922414055552L, - 2170749688227700120L, - 4825942009324106796L, - 1792050877115378285L, - -6605853503524394834L, - -3916692778840952841L, - -1986097963548896269L, - 7892537689540433594L, - -714136291891260346L, - -1648197774385026330L, - 3795404391823901459L, - -1987978550021718355L, - 8998001289418857599L, - -3968668700060172110L, - -5244271268838414883L, - 1096876802937588911L, - 4954206823378648244L, - 5569423710280172585L, - 179070914051875895L, - -1379762138674772955L, - -6297783890085466379L, - 8673286033209200164L, - -209771371089403783L, - -8371158182924445911L, - -7703744831611511871L, - 1612557317982335369L, - 1602832695339190345L, - -5248812496760442693L, - -555465681086935620L, - 2520493230458560658L, - -6666085761216925275L, - 7883921169936066300L, - 3038683421696596159L, - 5845618097380867812L, - -6239014819988016480L, - -8753088746243740226L, - -2330652362011359445L, - 840642889332131730L, - 4416624017275726341L, - 4690979542527364119L, - 5378555482069527564L, - 1969844668631546234L, - -7848379025576209733L, - 1977110971269560399L, - 2026765724811466304L, - 9004994755727389006L, - -2875238066205385075L, - -6183036361941845026L, - -2386657827628040463L, - -4350668673682921339L, - 5862965863197982604L, - -8441011186955249281L, - -7186928257432232499L, - 4577738672815669344L, - -4699309429317703093L, - 1727205267222358381L, - -6451216071831055595L, - -3419094732699739587L, - -9202486234602916474L, - 7995498040430401544L, - 2322468220197016729L, - 6579662275874920800L, - 7479989025114804641L, - 7484110942964095819L, - 2864220530563314806L, - -8398057079307137296L, - 6439003393908427189L, - -7835388314568774857L, - 5595140202807403856L, - -587980358622679054L, - 5729028629565035445L, - 7294164757654120979L, - -7034561723919575604L, - 5344573969684937116L, - 3196215998156871328L, - -1123378572589443417L, - 6074546259209406933L, - 2893792398378492069L, - -4483476567799717014L, - -3363408847369344926L, - 7141254867533804482L, - -5940527802490951736L, - -1094882559952364017L, - 8329622896679444321L, - -3173141862687107863L, - -7280018015022509268L, - -2089330837882663590L, - -354683141083920270L, - -4079664314326720324L, - 7616886288174535159L, - 8554847071096590810L, - -8173759087524336468L, - -3448863502458656393L, - -5738508186162418231L, - -5111997041556312344L, - -8550681297377936354L, - -4330402296580745208L, - 67088796475747867L, - -6874504283145514740L, - 8707156726330695854L, - -8450062796293630088L, - 327731584813515290L, - 7304259244110792264L, - 419104563434390334L, - -9153064691975026716L, - 7490483813653854554L, - 7077589656341495466L, - -5945353789867862552L, - 5486988927099214347L, - 4267202661349380766L, - -735203469934508862L, - 300049113155592253L, - 6668837619034437534L, - 213993526072465908L, - 8835245471465274914L, - 8183790714937497863L, - 8258711456036176276L, - 7136444522589690162L, - 1211565004822707193L, - 1989924245575051080L, - -218487864794566557L, - 2952924548635767820L, - -6462002167772557833L, - 5913246427219973975L, - -3174533491330927888L, - -8785311174506482406L, - -6684494991311010323L, - -2482601218412888093L, - -7285335761215045787L, - 1211034790718408728L, - -9100855059113049869L, - -1486270963118123907L, - 5275833683049609995L, - 8459420716417000011L, - 5533842052546250233L, - -6743116187090502104L, - -8218081861923503701L, - 5761628519765780332L, - 183841883985945582L, - 6376290782250169855L, - -775214822639981928L, - -8823028331753034219L, - -7585331840565087967L, - 2975478445973141542L, - -5063889138086837402L, - -2979700995440085783L, - -1219607777405733761L, - -7530208062940995205L, - 1583477077636770548L, - 687603337248263893L, - -7494884423475008422L, - 8422729696142094927L, - -2688483407638967316L, - 3899397712568319078L, - 7271622649506188466L, - 5081817906386987096L, - -916174376204972738L, - 1540653617218284471L, - -9108776863627327658L, - 409951124500633339L, - -1411012041120099174L, - 5254818079101287689L, - 4655192715659848616L, - -4055996322312971483L, - -3525221214301544451L, - -857176511645353866L, - -9137977946340218096L, - -2464138987127699380L, - -1572944913716776527L, - -5382357127457681304L, - 3400456476820781019L, - 7092666713014777182L, - -1016869719262402776L, - -4296380651220352294L, - -3137955217832540411L, - 6899747201222115049L, - 5612318743221858846L, - -3082611894693908037L, - -8765593464570788072L, - -8518170211087455673L, - 4127210266223470126L, - -480745760307138952L, - 6366437837796426817L, - 8633027726559958619L, - -4876440158972240126L, - 1910667810356463924L, - 525819879391508442L, - 728364790223504935L, - 1801852490210258450L, - 1693556137065594317L, - 7512677136171374024L, - -8502671549747219751L, - 6750465734377947195L, - 79926463486212071L, - -1606928706353092712L, - 205498205560429840L, - -8511147442275932832L, - -8428335428540761347L, - -7426388905907916885L, - -6514050737271088879L, - -2450758388754574856L, - -5091230991480586360L, - -5169952131144179624L, - 4447490729022261013L, - -3692318537052447395L, - 1078660998337165744L, - -3916568308067450676L, - 6024800331836073525L, - -8107333408030092167L, - -7607289536558565257L, - 5247807205554828460L, - 136732938448579124L, - -7158883148260417938L, - -6099971793579365853L, - 4854881589738432309L, - 7711527295835389228L, - -8549957081212159598L, - -7303058748474201722L, - -7681406204943895241L, - -4881190754207950300L, - -6035776958688302906L, - 7214212236240295751L, - 1981012208386034732L, - -1049989180117070494L, - 3924935253660959406L, - 512859785555014414L, - 5908617682678575542L, - 6758310316951005278L, - 6189924959604816301L, - -4920405470515789427L, - -2117869367297703052L, - 6707816747990551118L, - -4980047489747530190L, - -7365247289662920271L, - -5342685489927387987L, - -8590216048531947264L, - 6817356446955049603L, - -1378280258813293636L, - -3592400710075707758L, - -8871693364702999347L, - -6373833613639184348L, - 4797638018086956108L, - -5647576741545902954L, - -7901112803680191059L, - -1362942868170890798L, - -5813135684692802772L, - -711135680335633766L, - 1062354220967606079L, - -7871043181645557885L, - 6112341712359859833L, - 7916891160508372008L, - -8003652862887082098L, - -2396517101239953792L, - 4370059680750956803L, - 1363641917746765215L, - -5876946297329039758L, - -103128310036998617L, - -3800790044039752368L, - 5199080865813174926L, - 5691839759690453434L, - 8175397015029172130L, - 480520985319940721L, - -8578753082637254739L, - -6716879961856683419L, - 3597461575855927530L, - 4979191387439246058L, - -8320455146441525699L, - -2114691132483379200L, - -4537130860792099169L, - -5718306086279916956L, - 5136790107805442544L, - 7289096860375296487L, - 2880058958308819603L, - 3767398060224293737L, - -492404481239348279L, - 9012315970305384994L, - -2684151666886841943L, - 7272790214055332206L, - -965422762587779909L, - -5443848734878691959L, - -8153873600234827448L, - 2490597961970604400L, - 2281204882791254127L, - 9133290251048762192L, - -1491895733843702610L, - -3474774710279245800L, - 4612394989169216779L, - 2622616589522119419L, - 4355987380154620492L, - -2850604048799570616L, - -4107832232055765572L, - -3723943963188375533L, - -8366293232338256548L, - -8701054798330196757L, - 8878901433891377891L, - 7295106607144564961L, - 5312667635062107659L, - -2358396954926641322L, - -4984697743423066531L, - 8939820283882288854L, - 4023787057481178052L, - 4597747073035337711L, - -3865522208345382306L, - 6560083733272461230L, - 2427578708615942986L, - 221210573151544106L, - -694084245105944199L, - 2078710449028907801L, - -823943775911009298L, - 6602372026224749570L, - -6054136931573131159L, - 601483741465077007L, - 6742891241881907768L, - 4262941380660230060L, - -2511197275383350546L, - -9092751631744236653L, - -4870448764794484926L, - 1830385011126178734L, - -6596888154152123634L, - 5648158405496157638L, - 6386181707589856071L, - 3363359913697235141L, - -7056659780210553822L, - -5261178176756493055L, - -3944960812874472523L, - 2763181386445379193L, - -2619663536437942233L, - 8897272156543942808L, - -1257206140816012022L, - 5942440353528557164L, - 4786157224137440415L, - -9220126986536151642L, - 4182399256221021027L, - 5315354483278533273L, - 8269371862567018757L, - -7830778159860165874L, - -4812100746794420620L, - 3498354375067608851L, - -746722368941475584L, - 7380715032997081755L, - 5189957981103089885L, - -4300428216272672646L, - -408627655218877478L, - 3669295430170749153L, - -3178922344308130598L, - 808687805654478372L, - 7382854145017135524L, - -6443473827958318421L, - -3243447797010153128L, - -1263178138991133398L, - 8750726774705960543L, - 6533471826240257695L, - -7394781107965678936L, - 7513264927729266721L, - -3004378607368189670L, - -6171795523163885499L, - -5383549323957030811L, - 1014976843641973640L, - 2432193004343470889L, - -2321713758391047034L, - -5925760547403348951L, - 236543589293463223L, - -6902103426228510687L, - 5049656219947439343L, - 5906696563051122955L, - -6356958402903730770L, - 7486754190124721854L, - -6788905906689198314L, - 7381793004093637930L, - -4615937202128935315L, - -5266672324677452216L, - 1047319090632526857L, - 9103083281304922244L, - -8812437015774444320L, - -4970183476407639031L, - -5247957782476148736L, - 4465954112135309385L, - -1053934358778018400L, - 5829139887286261453L, - 4669463005092905624L, - -3286153457025266798L, - 6416979317993515170L, - 842322401817513616L, - -1776383023933641969L, - -8880210007231865557L, - 4508732217351572993L, - 1193868998902473261L, - 1613803703795008000L, - 7204477604144047047L, - -8681096723143103693L, - -1746910701409113306L, - -8920378322388987992L, - -8966483163014777443L, - 2824165487928805094L, - -5662128102397495131L, - -6624810964386882286L, - 5452692340292941871L, - 4316228119275391983L, - -9085964721275713953L, - -2133433404692719643L, - -7343693486447937998L, - 1109852172632293793L, - 1921023425304227346L, - 4854131887624741149L, - -8634651654935008313L, - -4727747937541913857L, - 245894689954376778L, - -1171354806284191550L, - -4449375760321500296L, - -2278035820133972979L, - 7026254152720723131L, - -5122868976531507196L, - -5791020171604844054L, - 1901595461796531398L, - -4888600188203895159L, - 5238583255328115684L, - 8191725727925819882L, - 6907331918345427440L, - -8330998437541118229L, - -7677204855776214746L, - 3733289736446750667L, - -6086367961329321564L, - -2223139316713310111L, - 5551603720291777494L, - -7284366962105424622L, - 8307035520655908816L, - 3515558653608239510L, - -2623185163047066159L, - -2881473020374695697L, - -3119109298045318191L, - 3915842281774372758L, - 4341838354106623860L, - 3536460086838807366L, - -400436201916140511L, - 1034940505346304444L, - -5677328290907787965L, - 3241577004049148165L, - -2177296903540985003L, - 1224705836089007055L, - -7226703706701449257L, - -5217415576556159333L, - 2723639485365257427L, - 3532882935985140762L, - -2367665914582725528L, - -1126240810191393257L, - 6572389991681822664L, - 3742078454964142074L, - 2537741859858174488L, - 2863650720786458695L, - 4444554472903165566L, - 4972147385910153832L, - 565306137953874174L, - 8228468642079060801L, - 3686959913775111096L, - 5015958178622222071L, - 5595710504305494790L, - 3174461843483976916L, - 1297058991090722108L, - -2693601104595504655L, - -3961646960717704540L, - -329224545254449497L, - 8172319141947522776L, - -3283750417712288364L, - 1484324135840360777L, - -4101313183342306762L, - 487423326160209394L, - -6984064475638587471L, - 8613232447441028099L, - 1138585794312519742L, - -5219522830444455097L, - -7068591267064606505L, - -214092808701416145L, - -2087748990108944657L, - 293814116254359703L, - 7396092072095010078L, - 1104271143132319796L, - 5950063587854161963L, - 1918000905829023199L, - 3382742654219329797L, - -7668064903330744354L, - 6592480311131388529L, - 3771018342787175035L, - -9209379343054099077L, - 8809433506817785437L, - 3622962127039251936L, - 4637085440835592271L, - 6356420981957532639L, - -6037359062089609360L, - 2809649815120543037L, - 4910545367671356353L, - -3641944013579376181L, - -4828543933815929748L, - -816942255851701146L, - 4500737028494484698L, - -5360859409398459244L, - -980188011105516319L, - -5341147405229376051L, - -5059204503101732424L, - 2323241341608001835L, - -7234489726660109408L, - -4399342489059768231L, - 568957892278445175L, - -3128288682699716902L, - 268059501110939604L, - 8869377529779418169L, - -5191201845817789231L, - 8742584095090015507L, - -1833031289184026905L, - 441773167769005703L, - -2862985803782167939L, - -2217136279577453892L, - -4699777063743038799L, - 2319030942204069894L, - -3096829301818651315L, - 2152089781530614740L, - 3591093109998414360L, - 3737787276968062484L, - -2075424185432267668L, - -1313631551970774685L, - -4919910057472342658L, - -1163170530272854872L, - -3783140882996568908L, - -8037533461827223438L, - 5147544332470383179L, - 1327994358379982364L, - 4326125443692555139L, - -1720554764987678589L, - -6224447350716142955L, - -3664233167161816084L, - -1358465093069484872L, - -3170767669678732241L, - 3175800087146479659L, - -16337625285930414L, - 4460646835363181976L, - -6184155055121584051L, - 8105205207275831311L, - 364645839147141988L, - -3252358421106878137L, - -2379855386905973850L, - -717996509442787349L, - 7039157268142466226L, - 8799412946070712593L, - -2256794007843286070L, - -3026828459050443467L, - 6316354959643887085L, - -632743241481339103L, - 9192761499170372867L, - 7519964503218211187L, - -3171788476130391814L, - 4205532823146854278L, - 6513522002710255853L, - 4968793986534390139L, - 7924914011447575185L, - 3506146014983106198L, - 8511722175131586351L, - -3535216109813816630L, - 3043419627940964079L, - 1989151438749037821L, - 7233464223954842358L, - -3249615372439963990L, - -8665368429824794064L, - -648378579874199315L, - -4727955777856631607L, - -3689595611110413143L, - 3856183988075237273L, - 5517263844496266427L, - -2433339568447789451L, - 6589509038357236405L, - -6774119612186335761L, - -4350036823275823154L, - 5834187175154047558L, - -3767301317720281706L, - -8702001427232534750L, - 94015559239255499L, - -4379700402807826L, - -1859937611212626430L, - 1226887111095682425L, - -1185076345898896498L, - -7829178625122620180L, - -2280062727697501740L, - 2556040939242422304L, - 6251964074628081557L, - 3066879182290958720L, - -8785644387968277547L, - -4488264477615612586L, - 8127606717194526874L, - 4890787706249869594L, - 6356833732756963227L, - 5174834866809420309L, - 2027973333647796824L, - 8053801885705963745L, - -6944307380006370243L, - 3113788140330654611L, - -2986910451567880470L, - 2425903292748474372L, - -1715269818440437717L, - 74338710306223399L, - 5132849055217923687L, - -6714922651557874917L, - -1476767669230945550L, - 6267869827386314060L, - 2151492872494414422L, - -188287405141817418L, - -2396141142455784570L, - -6107851785102021570L, - 2899506268788328800L, - -7955799538392167846L, - -8939834619099069255L, - -2962366035946053462L, - 3123384032637701312L, - -6706608866229291712L, - -3500046218323398125L, - -168870750581166069L, - 694099585994227916L, - 430038091926664816L, - 1624356164486366102L, - 4334130261304381128L, - -7324629223026415329L, - 8823152808567544116L, - -8620326148777841379L, - -788126204987848665L, - -8814182475375947241L, - 1080002348337528081L, - 3043074730722911830L, - 8234596790989448752L, - 4608358602898896255L, - 2343398753207867914L, - -266697139298886785L, - -159260171872612558L, - 4370044052923372524L, - -2995614366415980410L, - -4209600344306251016L, - -8755371846184338683L, - -3955855588499799050L, - -6787638727374739702L, - -8849461119575970289L, - 8716688164664398086L, - 1514577502053504108L, - 2240729936627952880L, - 2838465136424227986L, - -1487161195056206463L, - -391895021770092123L, - -717250607935411377L, - 725101643113018626L, - 2018234564447318861L, - -5254575322305083709L, - 4424742596549423606L, - 5662970072122589602L, - 3130397907087802883L, - 8049486087948419299L, - 5557801586424368035L, - -7085534093136275857L, - 5600569740806125553L, - 4128462226512133482L, - -1574925284503437735L, - -5135068613676616410L, - 7314046845044324564L, - -3686747832999142812L, - -1564972575538757040L, - 1120348884617118977L, - 3412879446395492399L, - 6962651138322613963L, - 877006726541596979L, - -7866734399584535627L, - 8572173997988387711L, - 3835382868124934929L, - -2583877131516514905L, - -5102649011667592384L, - -4798459575624269557L, - -8156429235664983329L, - -6239845266330519720L, - -1914747524813276529L, - 5363997714419355781L, - 9210533546107024609L, - -5245165629299500976L, - -5193672401549237041L, - 6597128830638074557L, - -5969845161062876521L, - -2445089653030403139L, - -4797981019593561429L, - -1962888612492761260L, - 1803013398616297242L, - 8744887681327442130L, - 5851196282496012008L, - 892128523146305717L, - 4170022229766562081L, - -2134478426920707338L, - 1238027773513435748L, - 8866916391213127576L, - -5827099544905007258L, - -1552818987126555097L, - 1979982077379021084L, - 3998394901457623548L, - 2787580374700656688L, - 8372209727011402499L, - 3409775566082298245L, - 1114413850985679686L, - -609417232397692848L, - 1762759225268672019L, - -378983625905076170L, - 7435306721054054073L, - -5155196407132036358L, - -1668786196380559129L, - 4519643915893375417L, - -8609870523645938036L, - 8590593064246052287L, - -7126254452521759890L, - -2826314600096007100L, - 1624568634286818020L, - -450700576225246242L, - 7539390560191158137L, - -2188075991300573837L, - -4681497720947957856L, - -4688143896220383919L, - -4305920512968147039L, - 2656654774987994840L, - -4854606985975851256L, - -5361383744936804655L, - -8947485315238255267L, - 3311598196079410229L, - 607952732017041432L, - 4481836561581728625L, - 1856670507280870266L, - -8371889865268432118L, - -794649732821127929L, - -6144467833645861578L, - -5870596264115217421L, - 1547182795679877050L, - 3554393108243259363L, - 6096915670896392585L, - -7585113688284079403L, - 6283800140108182083L, - 7325444638523598785L, - -2676741791420355695L, - 7399210828703529226L, - -5153686314010544980L, - 4553182987876882087L, - -8475602433165535745L, - -7549754731031245776L, - 383864735074387336L, - -1462360910626047142L, - -2503433555198690048L, - 7124680608501705883L, + 3244421341483603138L, + -4302098779834749733L, + -2998166160713018281L, + 6864218090047839419L, + 6979084321315492338L, + -5731546056562700354L, + -6460328875922888956L, + 923809989133364073L, + 4187271766389786872L, + -1629980255024596516L, + -6095164084758671497L, + 2086176710598203789L, + 6543284205211650379L, + -5213522776729965383L, + 5545158833176453687L, + 6191585008302141506L, + -8983023575487778597L, + -6993173599622040792L, + -679721864292929835L, + 6982591615625134866L, + 2917394212576059053L, + -6639923505334063205L, + -2362153139612899683L, + 4776590923197089330L, + -1506670496010913414L, + -2647877581130602390L, + -3024194937172852654L, + -6786232254807398843L, + 29867523197922776L, + -4755612273762186448L, + 7027486771791057426L, + 5707990981978323197L, + 3829001002278603781L, + -1833995589090992552L, + -2859822223207566521L, + -822061951152501107L, + 6172313773566651166L, + 3002688263104272481L, + 2442729726468942826L, + 838920225343106725L, + -3625228911788322244L, + -3085758516746786139L, + -8838726273629984649L, + 147628805604629229L, + -8609901492927370359L, + 2523698187551014389L, + 6168573373090741088L, + -1129058501854041166L, + 6287935907341083849L, + 7111303459234964792L, + 2178159668141251214L, + 3355500812482858732L, + 7998592630692471773L, + -3657590562873574961L, + -6707964006400412490L, + 5984672195388902266L, + -4866191761727097338L, + -3867761180105420740L, + 5010507633288345206L, + -6360606695257557456L, + 891304432194930768L, + 891409307892263904L, + -4666213895286452910L, + -6150244752716240152L, + 7027844749552840021L, + 7577525643630617296L, + -2909908046638187264L, + 1269898915928975170L, + -1296685705337969741L, + 6880380907958913107L, + -5157697080261523794L, + -2384830554205610823L, + 7117698599495882683L, + 8436634904183317409L, + -8685705461888375606L, + -2099116977851507310L, + 7784639995868301609L, + 620173983152449558L, + 7875300522364621790L, + -8571663595578279581L, + -6074103631611676465L, + 4991809556790719000L, + 7182703058112323703L, + 6700847687881865453L, + 2471686449789799931L, + 5615843466129961201L, + 108638713672822205L, + 3583360813653880832L, + 4747956906537059928L, + 5998273219519720430L, + -8227785307205256168L, + -7813674951517583442L, + -6588167816065898573L, + -6862603585040654361L, + 5081695234398607736L, + 1329474798079286264L, + 2849157965221752315L, + -1791866940674927372L, + 4332646258279960296L, + 4180229147886927001L, + 22042537110060316L, + -2696513067094881964L, + 4479930798836342597L, + 7717940613376663979L, + 6494116526350833911L, + -197304122858742249L, + -4396092174831810083L, + 289832483284799872L, + -1407793616753546142L, + 8107749310172792421L, + -634728965402563086L, + -5703942985817925313L, + 1530829577509875692L, + 725468970373613536L, + -8861952843133984162L, + 2677458900969433422L, + 3204987178703259401L, + -5308372023803773091L, + -4001659458034098463L, + -4307920379982142578L, + -7679947731286800682L, + 893843933290517983L, + 4059405294108459720L, + 1831062127804751133L, + -2762239301578822450L, + 6439416643289274311L, + 7794216615102176353L, + 1300299527667998511L, + -8807326403944725397L, + -1407864491810865574L, + 5562548832393267847L, + -1909668463603883104L, + -3001908439859224423L, + -8229811775093055754L, + -2185505997709248158L, + 8747474804119761845L, + 3375976894941005122L, + -8687541524345519584L, + 7475418969225723061L, + 1090519453973870407L, + -8039787237657230770L, + 1464043301476531850L, + 4392840094176543368L, + -9069431037609626595L, + 184117852034042369L, + 3048613549567428513L, + 8360545369892314479L, + 4218067793502522363L, + -1984361661054820977L, + 3359102789277797744L, + 7846237042486223698L, + 8441054814755521322L, + -6067811722142115057L, + -7157356563671886865L, + -2021770978571166827L, + 2181025843643822270L, + -544448869202488473L, + 7057264048203590026L, + 4363323697043225181L, + 288118730444504008L, + 6623265038156431800L, + -1346676098681766085L, + 6693111459824679536L, + -5826625922074103454L, + -3486949479332473670L, + -5491430220943863042L, + -7571085429759204806L, + -5040253774339356206L, + 3305212073815689334L, + -4916812550925428252L, + 3791981966901325707L, + -122684436810232675L, + -4859495698099370447L, + -7070496757192133073L, + -868377069569577871L, + 8419145116270703784L, + 6800486273015600197L, + 4633342516797787668L, + -1661577990952520136L, + -334342790235531239L, + -8872817819424402897L, + -409486044664079154L, + 6190926389261136345L, + -1300830024987992860L, + -3395638269793024332L, + -8493538135787539363L, + -6621335634487712846L, + 1973828869629126484L, + -8925429074145354136L, + -2678123694384376779L, + -4225602364907809934L, + -7257068922279808299L, + -7485343360991292969L, + 2406538583069093177L, + 926637182534700777L, + 4630670481086444853L, + 7851742083103622018L, + -98392444236074312L, + 1142322156420818107L, + 7462750549553202851L, + -852719212082297085L, + 1478659643974205762L, + -6521398709638030532L, + 1345928530210989700L, + -3363927467796334767L, + -4501085897120438635L, + -1855175868195079840L, + -8957269249266743558L, + -5499424421497234822L, + 6823468430111213664L, + -8349332096263306503L, + -796191064979922279L, + 3070550474559678794L, + -7237539936935226606L, + -1467576285689886091L, + 8020665312084081577L, + 6549665319606165521L, + 8265205303228562057L, + 2959656348340404166L, + 3479620626361283295L, + -1809040706699436602L, + -6118995013506825485L, + -3703429629123416796L, + 5314878427138221245L, + -3374786619071663812L, + -6020893708387338112L, + -2099692294850961452L, + 5628155794800251850L, + -4036147416511180551L, + -7941600054572002747L, + -7483400491927447614L, + -720567278261368781L, + 3314031855271606298L, + -5471631794645557473L, + 8887891228392664673L, + -7960828123610685614L, + -766265380117391950L, + -4017904512890559451L, + 3478074185490226921L, + -7553920981498126005L, + 3988562325861820517L, + 209643423615708418L, + -2464819451665246158L, + -8631718977760664612L, + -4893221336143393409L, + 2390264798730683615L, + -8300749389255144164L, + -3549775289570958064L, + 6514441262456966668L, + -7301663820335638615L, + 4181559756778549411L, + 6215253578855337690L, + -7323335092456459405L, + -1860577032441476467L, + 3644299936077808538L, + -5161174126835724701L, + -7779787747613135503L, + -3446338450597548406L, + -2662609220502962318L, + 208946340318274486L, + 922869894074454969L, + -8428909140908329623L, + -6875524699939418906L, + 5154230294972327697L, + -5868880138852165350L, + -2697155020815738737L, + 6278899766774254324L, + -6124877505863871039L, + 6113186870348198684L, + 1328797232741421065L, + 8936960355443139766L, + 9069883653377839816L, + -6698244186639407697L, + 6633988379507542818L, + 4243888593320380368L, + 1299920470993756698L, + 2315187937474071861L, + 806120923801759332L, + -8537792935927015380L, + -751623313460664870L, + 2455098182130434513L, + -3041072155357054618L, + -5209258140949481980L, + -7784651030341623624L, + -8624281235662545565L, + -5185374153462168974L, + -8728622305551122108L, + 3633316488676598179L, + 2341850275669250720L, + 8998800880957295269L, + -2791108801739767859L, + 4207716787796156879L, + -4083554261407892809L, + 2977762250156739855L, + -6066243213313847782L, + -3134677742513834402L, + -5231660756514911289L, + -7916346081138370244L, + 9105509708951212631L, + -3071680532260795719L, + -3152428524199455707L, + -5276930195233923125L, + 1981446637702558747L, + -8822786060285469479L, + -3086453182842996354L, + -7521798164704108718L, + -7460429880600038351L, + -5031515429775225415L, + 5662627828449328757L, + 2804157867790593789L, + -6183934836359652529L, + 2425310972806241292L, + -7877162957672040682L, + -4575453773921540745L, + -6152892230011262930L, + -1554429781063399588L, + 6395550633581619922L, + 948199150697514149L, + 4123518706442132507L, + -8620024481834864148L, + -4627311960537433998L, + -1517263476517287336L, + 3087156144310177979L, + 802387854806242344L, + -8223164854162179626L, + -8876883825341271093L, + 6189924694943538938L, + -558048344469199000L, + -6388815497071843014L, + 7970082794223216108L, + 8943146030443257086L, + 1919558538884824162L, + -5413821296846136841L, + 8482255996292420949L, + -2059351044571046226L, + 8122315934009425936L, + -6002133579485340781L, + 6439465961707132723L, + 2763117897158909339L, + 4241846593057682886L, + -3156374353704014890L, + 3611310604513156987L, + 2539868227324188707L, + -3160603853021599046L, + -6694565052629228305L, + -2829087677596299075L, + -3855421753196086451L, + 8353874633819013271L, + -2485914493713180581L, + 2924901647540244351L, + 140830235769158231L, + 8924525771772034372L, + 1991645829771754924L, + -6409133430531739321L, + -2477349252564343349L, + 7592298137540200578L, + -8706120837264950112L, + 2330049856518978017L, + -1333715564956417750L, + 5321303278236129003L, + 1316603583801631000L, + -2052093890021786856L, + -2212919092132307727L, + -1138248150179747101L, + -7297574785915472699L, + 3159392081609537393L, + 5438969032594710113L, + -1117946266762888661L, + -3513962250060316650L, + -95470470775096400L, + -928547845419412355L, + 3064209748165139149L, + 5570740544374382296L, + -4848606292970499536L, + 1249733847255258336L, + -9081876379081045111L, + -3178350430540128617L, + 4580722282117591455L, + 4910338723691444614L, + -3861107435455294057L, + 2455351552393139588L, + -3098045343671378301L, + 1276702104227748441L, + -8725606894849543465L, + -7043526197674754455L, + 2543751490914779898L, + 1111188191726666289L, + 3299681536744686092L, + -4968407975804173061L, + -8443232222924958642L, + 2692856020311995538L, + -7295992543900831720L, + -835426980056055153L, + -7189216512060259212L, + 1546667140862204220L, + -5157738526808785307L, + -8400112152363165211L, + -2562446629278342489L, + -3984312152746163924L, + 263973571859894620L, + 5863738959863392730L, + -3750469576779228200L, + 2859093520615066384L, + 239574671716835044L, + 1758244848125395099L, + 4692926060224877180L, + 2328985435627410056L, + -712944964417726519L, + 7575628018175957835L, + -6461647485226712981L, + -9175844658802936237L, + -1791894645853433273L, + -3209291319104719345L, + 8435774909159574457L, + 3068904622159492539L, + 6405574310234631665L, + -7236310029621050895L, + 1939741827857698370L, + -2711876483320863546L, + -5191337944005182792L, + 851301927202074099L, + 7817558216393575797L, + -924173671401578135L, + -8870424728276452684L, + -5612135981154918473L, + 5352840780989627332L, + 3115501649750915797L, + -7282764488136203731L, + -4410122159075968274L, + -5112841868993719465L, + 1606611627835962209L, + -2564625118517656156L, + -7347999176364584697L, + -7520586016175454443L, + -3582872246453049220L, + -7208670274224679141L, + 1407185043226639926L, + 5548472899324259498L, + -3424704481698318306L, + -8898045228081312865L, + -5032961205984329240L, + 2319704565344125424L, + -1858090959206557106L, + -1847512527385111193L, + -218817722784924760L, + -4644538017574761086L, + 527762499588866419L, + 7682925460546142196L, + 2618673582975102782L, + -8339358073633623035L, + 4632344075623474881L, + -2634725682046056737L, + 3264353773883015103L, + 3450256920483368564L, + -8453373497678191816L, + 4324811352547234228L, + 5231611966727557421L, + 3935063678731059941L, + 6338309551930394802L, + 6622686033142507173L, + -5278373537512798709L, + -9063940204441257539L, + -6333833756325058415L, + 3799491381076234981L, + 5050905817684546674L, + -796624655126841621L, + 8334872366472578300L, + -5288752267258476166L, + 4335956913966038392L, + -2247074774901543705L, + 8474035569080943503L, + -3170167932314701995L, + 6999756768956410897L, + -4451078577344071588L, + -8433054951584831409L, + -2640652121643463448L, + -7045594934288710931L, + -4036935141669708886L, + -7734407512972194081L, + 2053541054148333962L, + -566653752431971002L, + 1898804146829115409L, + 8507984725723339263L, + -3742788731083462619L, + -614166854038590657L, + 8147682807535759575L, + 2813322236228401990L, + -7697111451322995338L, + 8023578719528819358L, + -1666048881205334172L, + 2861705383918865808L, + -2067264870309406817L, + 1544932780962992751L, + 5752963315823730718L, + 5563418456763501584L, + -956763705026909993L, + -6723021793890249884L, + 8199491799885937348L, + 8254326245904567972L, + 696534455436688862L, + -4526166123204455007L, + -1244479971115743946L, + -4712028527008594695L, + 3845317619056596538L, + 1397508695414938292L, + 5199778266100306999L, + 7649610185133409821L, + -7736979936936405855L, + -1871499676764587199L, + 4089210433244498057L, + -5319342193649020117L, + 6510328602034064204L, + 1177990759783856649L, + -6211536889696831922L, + -2806444732697667079L, + -5534324430749159010L, + -6189402282341917673L, + 6327177260956086170L, + -8199327532062722025L, + 1757637089703623521L, + -1083020196125888231L, + -4027554827881183115L, + 2536452110533397141L, + -5283309880767903892L, + -8726185014741079280L, + 5870565960746070417L, + -5981985584772708231L, + -1932877698882443840L, + -1002343255004640521L, + 4369245457815499473L, + 574307157338267836L, + -9022123090729501652L, + 289683520338718123L, + -5791631171477648402L, + -7088072188409060385L, + -4659987534525277948L, + -6573587402478059370L, + -9147189283662432041L, + -4621406226758810332L, + 3827992897413425855L, + 8237187128340177815L, + -2575127860924571660L, + -5807831166865245102L, + -5362714198312494492L, + 4800564949032048849L, + 6232971559544384156L, + 5346264270546834545L, + 4418021854956695145L, + -2503709442294180811L, + -6705525727229877941L, + 2807916716409994404L, + -140901784876025870L, + 8341454749980902529L, + -1877846120130857988L, + -5151008775080326365L, + 4141948371168606708L, + -2991396496641036974L, + -8231846204849830109L, + 8817247101288954387L, + 8987037987198023072L, + -3653961272252403667L, + -5540876112254432380L, + 6630760576601451124L, + 3952853764187760519L, + -2752207231177565438L, + -8990910782429153994L, + 275029084438740989L, + 4377008995333363792L, + 7821963094129670639L, + 5910345261804604591L, + -4676534586425310858L, + -893427896035022872L, + -5107326322974521170L, + 5928147272454832468L, + -6838714257802993131L, + 3828181535474040080L, + 108432455104664877L, + 6134860905554719891L, + -9006906057728028416L, + -8785087250130628623L, + 5107258923997586783L, + -4184502077870950738L, + -4196994343382319067L, + -3602525630290645804L, + -721602986806918388L, + -685749048932716724L, + -2226124441764103982L, + -8444470437189672337L, + 5967905323104782609L, + -774529365691330376L, + 5317411683068394421L, + 8753729036148149823L, + -2600284926580864832L, + 1501264369203023713L, + -5589106565383836539L, + 2671769607792597675L, + -571916257780128106L, + -466398102722097434L, + -8668321984643614166L, + 7631202114905008803L, + -8647922451448787023L, + 8025381490498356948L, + 6049280950696679244L, + -7696482417187458362L, + 7140438358861456746L, + -4921885565559803566L, + -7027307783313071980L, + 4879598629629415952L, + -7342155744245645378L, + -2263378697656156016L, + 3707257119850556629L, + 2267112971575522392L, + 4213162373130191016L, + 8934898250536865564L, + -2149765792894599153L, + -5375160376931751557L, + 2196544121130659101L, + 1698916734136113996L, + 3433172695894846834L, + -2849259564218003615L, + 3254138956861413927L, + 1285929622626453198L, + -2349127797610817522L, + -1191286947825336074L, + -9055971338481310193L, + -3525928115330914396L, + -3227633136719463166L, + -133501853014392460L, + 1099153576792978915L, + -648473507797745243L, + -8947946509829984393L, + -183277647411867477L, + -8972836557830117056L, + 7599024178448012477L, + -4558685557381095142L, + 4767843848744584145L, + -1522308275842184404L, + -8584574042672861403L, + -1734332735592240813L, + -5832090116698921823L, + -8717779938268738600L, + -1881355893097809021L, + 7715529933819950784L, + -2289162375063823266L, + 5628801095532857454L, + 4961594313236250573L, + 4618832900030681591L, + -2860026598356511432L, + 1961029532371905567L, + -7427116119564073711L, + -7663272674507523073L, + -1432342159197328837L, + -6656742466964663442L, + 1884610673731472834L, + -3810094228658892044L, + -6616291605664442115L, + -6089433736056798518L, + -7473225570871869756L, + -2962461410122376636L, + -7732736326487208707L, + -4443012182604465346L, + -6157220788020380465L, + 4600227015044805999L, + 4469639125734518912L, + -7792518910888390519L, + 1994555386333163764L, + 4369373061497876631L, + -4738249058452865067L, + -5995135073617675417L, + 8575145712582277328L, + -3326852669647946366L, + -2007891227481667403L, + 7761466597038557448L, + -7224144129768088459L, + -6066361559768252258L, + -4068105427650671702L, + -5560889521429203904L, + -4762527649365520713L, + 2694767757294725688L, + -98412761475871782L, + -1686751510820366009L, + -8638747288926132295L, + -3606421426295459375L, + 703911580424568845L, + 3806874684410471199L, + -5118211203482914183L, + 3783835693585708905L, + -4147496567901501893L, + 4328139758484363106L, + 3028068134370267202L, + -5966389813687232408L, + 2195469898148267913L, + -3080166474377317430L, + 6412533502918649688L, + -4801061500654703956L, + -554194900129906123L, + 1486000469436139740L, + -6971589411333019409L, + 2647463349908157318L, + -6754094203714628854L, + 2314399046579224435L, + -6177383374280917075L, + -5619632493646738964L, + -7301831206207675015L, + -5527516975398904813L, + -7206298956882517419L, + -1535337994919517848L, + 725107219148423471L, + 1938195538047669437L, + 1028829726878266547L, + 3981352596771855719L, + 4637441575637536278L, + -567364300216533096L, + 4215820779392244698L, + 5791138156269639416L, + 527001488112788484L, + -4390338125863921979L, + 5557055272452535368L, + -205316410586789577L, + 6952133288635206796L, + -7457518070084443694L, + 2002018537802900078L, + 1561023860546606398L, + 3006183850758749007L, + -1361037422909233361L, + -4203933835330884180L, + 7500988945823273736L, + -3010872765453549672L, + -3781827987408697259L, + 7460277383018710734L, + 5250710645655626569L, + 1109553850343924028L, + -6498085059809326090L, + -5879222670885240061L, + 6210613100795379620L, + -5759675374559290972L, + 2824738880545011656L, + 3213468672819532759L, + 514328750496380347L, + 4470285007717204101L, + 2269240343629252129L, + 8714859525098129755L, + -6932578361476642118L, + 3219949239213817308L, + -974585298959970878L, + 6482527911604968876L, + 889153561428168470L, + -8207616222981108363L, + 2386860797138412452L, + -6749686321997906685L, + -1105424552884318985L, + -3137963539903752699L, + -5296550634024189868L, + 2919221292190747486L, + -3991521756182858814L, + 3802413126716557908L, + 4556158013211621930L, + -1956520472596138305L, + -1667618395239727751L, + -4948155010712448139L, + -2667546434479018044L, + -5192951416537530780L, + 4474564860866849514L, + 6795504197096101870L, + 348555520492747776L, + -9152654684800879935L, + -139520144005307559L, + 8655115078308054377L, + 4640578432082008138L, + 8526214307008571064L, + -7079091919397494753L, + -4852301075482608956L, + -6726381834527599283L, + -467175742480032731L, + 5092513639393893997L, + -916781769295487406L, + -3306005301217276910L, + 5711239369216246603L, + 7411369067342514714L, + -137089609471843551L, + 2197853544547148264L, + 6994895994975015585L, + -3993584670641567357L, + 7324113989979846776L, + 4848201612974985071L, + -2319141888027790806L, + -7727572350242351429L, + 3611228677421118756L, + 3254031939911056022L, + 1315862663037871882L, + 2762719496333050774L, + 2441476684596910583L, + -1751985778109806355L, + 3156518557955714028L, + -7474525109128332157L, + -402634945481420093L, + 3711042493776857096L, + -526618219268616930L, + -8956423818433397438L, + 3318951429850234648L, + -4065748355754556535L, + -2974465318794034149L, + 9156201933336414671L, + -1224004278953882958L, + -5567810197150710613L, + 7645667176564158039L, + 7437954892140634061L, + 8595047667824297631L, + -4227841629446459104L, + -4073313779073810355L, + 764623093768368301L, + 4502563456929761688L, + 1027370723462817766L, + 7668869338814612684L, + -4780350365503382825L, + -6389061999435806787L, + -2133237830821026919L, + -618977682776693149L, + 467656057704319257L, + -6754479852919060751L, + -121796624546305099L, + -6164861615484187016L, + -8568598162483564153L, + -8182644091745100549L, + -3989631051916738549L, + -3812515520109109155L, + 5458479505950940580L, + -4068063356781230185L, + -2830766632873229698L, + -7592354330098913572L, + 5323147076973602219L, + 462800867816435413L, + 4002154584204048905L, + -803837213195276249L, + 270846859760410932L, + 339186719055655409L, + -1681073433226249949L, + -3172364168133842187L, + 4471576722877991666L, + 5796602822306813285L, + -7918394505018135767L, + -8099706435104488972L, + 3225305587851029418L, + -4366886220054887809L, + 7732358946751522729L, + -228816160482375387L, + -6429545033940023762L, + -4874531170284168803L, + -7919754354938613725L, + 4818550076091948962L, + 3907701057522316102L, + -2162109673539899314L, + -6296577330837677905L, + -5038523314786213767L, + -4182256071671167089L, + 2347804671767305901L, + 8781747195783722684L, + 5464112250608435856L, + 270499223000052613L, + 5387476652934255975L, + -2665753069813354951L, + -6640316903187366435L, + 5182130073111288069L, + 3324630100168604545L, + 6092224834024861844L, + -7314979478990434840L, + 2475323565628074124L, + 3744881942029260381L, + -4468245448047387416L, + -2514532843437356755L, + -8460931029051770120L, + 6058982121000846509L, + -5771467892492359246L, + 4284427580292476574L, + -4502826197302040607L, + -8909965133023702444L, + -5152825667036557377L, + -9001319942906464381L, + 8783326653870239059L, + 7169538748654303504L, + -7206711339673245443L, + -959892259265562431L, + -1673323329893911437L, + -5827914418805049723L, + -820830695253715046L, + -5782181341435499931L, + 2663734005752892035L, + 6987511185271585413L, + 1292089443730939651L, + 5587170596809636807L, + 8237809229146017083L, + -2235781308356196513L, + 5423273201690025713L, + -827014178432784464L, + 4410575469603649344L, + -4472642034035214939L, + 5360193252716249224L, + -4572235983836835323L, + -5433653902594010857L, + 4134790485921001466L, + 4485288889906709425L, + 1685824402735587758L, + 6091818520229922279L, + -212523426857309616L, + 8873690209863775893L, + -8812432523459654235L, + 8103047819338531286L, + 4614534509558570387L, + 4229082172984667846L, + 5484460792243331111L, + -2385763800014084246L, + 7030455160712580607L, + -4237997225503760625L, + -8124291737715145061L, + 6327782024255912635L, + -1059957986215325879L, + -4603394046555224246L, + -412280426794415941L, + -3912022758691365061L, + 8274283857906326279L, + -6679687570538459747L, + -6155809572519276859L, + -341344339192464824L, + 4137861550441588415L, + -6618940267671493988L, + -7291675023689911653L, + -7953871974818004574L, + -397153165830243551L, + 4399741193484513820L, + -7321827371527026850L, + 1338155597001139997L, + -7945100475342274903L, + 4522579580699730675L, + -1777997817650119183L, + -5064101783437092203L, + 1113553310062801693L, + -5709720543205442481L, + 772882345518435045L, + 8903336589907078605L, + -8789465120959251318L, + -7834044567177051539L, + 1770279151425541006L, + -4941283968572768930L, + -8127231558741248281L, + 737747628416269099L, + 1574449851957266285L, + -471282776174276539L, + 6739952936193376447L, + -2424982200476312714L, + 176022186483763915L, + 347356729555692814L, + 7550980861784622262L, + -6474882761637742162L, + 6769254801287215843L, + -7346044586598503820L, + 1815045574884249754L, + -4240219227462571370L, + -649819224919779208L, + -3697860834931443057L, + 4209607762757612835L, + 5512379227441488333L, + 2554702396243693813L, + -33063197416101018L, + 6204387436027047110L, + 1121696558750946811L, + -67713675745955613L, + 2900236341998750711L, + 4072627124871947361L, + 3411250942283240973L, + 3459019187218245290L, + -4931935198846519054L, + 8420402881327935528L, + -2700073972687127894L, + 4135622085465759778L, + 3115364578959809417L, + 7905907040079822152L, + 3117202331600018366L, + -6912405766950946927L, + -4526890208931001416L, + -8362196017109360491L, + 7990163642449120866L, + 8921333090931858791L, + -7835160532401884454L, + 2597345228860385242L, + -2019901582135813985L, + -734731610197007345L, + -4478738615320414333L, + -7971363857175568029L, + -4550695664824391599L, + 7004896942426055925L, + 3243444764663891458L, + 8221182849925835178L, + 8413639868002181795L, + -7599742913553767497L, + -4861871033227348667L, + 7180813616057727196L, + 4110358466985293134L, + -9163301540202343656L, + 7407431836530456233L, + 7168833492994704184L, + -3225184215180636592L, + 8550286352383434501L, + -4037242040051553894L, + -7019860459089371337L, + 6499568859919656194L, + -6517870390876058597L, + -8816903563531564452L, + -5488567103311833696L, + 7162975208461021799L, + 3231150263108104601L, + -6472825090155306196L, + -7112727281349161724L, + -8908480908774446053L, + -162138742916032914L, + -4934765719133081654L, + -5383597847234182085L, + -1457750799424768103L, + 2062788467226997042L, + 5195212083662151172L, + -7086725269988157115L, + 3216790230270684188L, + -6772983200597124262L, + 2139536380152189149L, + 2783400616608816134L, + -6309269121238725342L, + 8703327852945446994L, + 5986578967392046329L, + -8686234791137218952L, + 7147175926193618258L, + 2812520130705527307L, + 1012516456501023939L, + 7796658848573086967L, + 2642184550087192362L, + 2521303561751617614L, + -2372355039844318123L, + -7982908463432899233L, + -4773586301827797121L, + 4040904044293393487L, + -142670900232845920L, + -10691804562559377L, + 8453630879397574208L, + 5612078661433375152L, + -3592401183831123809L, + -1194636486876965628L, + 7144612844993582305L, + 5952025594559102453L, + 7768859735998504182L, + -9046596974248194873L, + -6171084369920910835L, + 1781418400960307869L, + 5081999630281512875L, + -5147831879244994539L, + -6245492622672631422L, + -8665204890652827995L, + -1175718303513980672L, + 8885449897820005156L, + -328163209321586593L, + -1445525508305375763L, + -2100999238041350502L, + 7410786050561217868L, + -7914164711220348362L, + -2906200250494490361L, + -867790952312765711L, + 5887767909251264450L, + -5789450489200739242L, + 1662159886119924244L, + 5012361370472355454L, + 3429745384914079292L, + -4445208736020219814L, + -5413763295704138557L, + 839374495111075513L, + -7648977736915073173L, + -3664832624688924839L, + 7158412277573249226L, + 7779305491962558566L, + 8039313349173431072L, + -4220847824862505833L, + -1939839155925934724L, + -8034010027834756500L, + 8475758752811450501L, + 1099214246266343746L, + 9186354033975902114L, + 2335697942068596836L, + 5125601667360226370L, + 6606318187238773479L, + -1182364933194642155L, + -1282696136769309305L, + 1154559731683162717L, + 2886049233756462774L, + 4825677492212933300L, + -9121350732551109877L, + -877752678277742358L, + -3266764465431864389L, + -1914199636241277795L, + -4687907120417383299L, + -474253911596715394L, + -7075290400477487025L, + 8134957124130148548L, + -2992238854808660187L, + 5996516183600836003L, + -371549095799671162L, + 3902975175457565825L, + 6605036583318392521L, + 1891100275270423451L, + 2119245665259072674L, + -834774890825819923L, + -231771124221128734L, + 3133196876747178672L, + 7298692169226203885L, + 7126455091552696586L, + -2143648506542037333L, + 2865309216991778464L, + -582169278536046195L, + 8080177625773872889L, + -2641866597771089394L, + -4210759777426999986L, + 8940623302154716559L, + 8753678355208533280L, + -6281297936039038456L, + -4466014453281785565L, + 6273362062923197148L, + 2333217083667471091L, + -2134695293413683177L, + 1638282373040657672L, + 3200622258378038793L, + -8777912174432066160L, + 4509402067996738269L, + -5444623700171973227L, + -4861257960719874399L, + -2931845644152220868L, + -2415035074251453041L, + -3415608992526650142L, + -1100060277548286709L, + -7950756431533405941L, + 2529778543681983619L, + -2509511542105356611L, + 25235701976844069L, + 3512243450460933893L, + 5497081699936367558L, + 8834833749235004269L, + -8786955172657476976L, + -2806229680204644453L, + -5310949673572257587L, + 7180989110601385791L, + 4574812998786692932L, + -7191136183375597108L, + 7817612065160053901L, + 4092147258927215079L, + -916694886327147203L, + -8155481011317235899L, + -6577214469178899288L, + -4704682976594284594L, + -970000750564611255L, + 6392037803435901919L, + 4653466442162924160L, + -4217569099833350175L, + -7494295064988163591L, + 268071204677339466L, + -3128139626778549626L, + -8490295735340959824L, + -5162368829222403127L, + -4379157681365371219L, + -4505869932044746193L, + -7725004848904746158L, + -1077347489733049759L, + 4372692724364737369L, + -6095523387109702205L, + 866555760732064401L, + -6043383891507219565L, + -5064298145687783678L, + -8284554766413268444L, + 4358509246174021158L, + -314402459279271878L, + 4534052702364464050L, + -5069975264209271430L, + 7618881160105474363L, + 4167592104901771551L, + 2277499839812963141L, + -5797737740917833733L, + 5386843611229288306L, + 322032948055534721L, + 8623908495470433985L, + 1464656873108399270L, + -143110847782655873L, + -3683505493125515417L, + 5263884653798534228L, + -5596816932431872850L, + 449263668055475580L, + -8209880385374160761L, + -6160876842633556933L, + -2822510119276015598L, + -1867833971803598158L, + -2743011208375680513L, + -562758870972224424L, + 5241707884356795802L, + 3044382044884310303L, + 4240643424518839454L, + -7202731734581844883L, + -8098501199143125283L, + -2550459180607677020L, + -1776717083783659251L, + -2343369089757631624L, + -6293279254462751659L, + -9100627021059872276L, + -1298100985130924363L, + 3390116780901102550L, + -4663999614093100429L, + 6916372370306791572L, + 1488349423055656442L, + 6773020852755024150L, + -7005014351468554871L, + -4753926923183579314L, + 5415870192658316069L, + -2670881940811475410L, + -7225213211793183097L, + -5703028807893997804L, + 6561444537664669662L, + 8939981796276591301L, + 6017910964940092953L, + 4500890776998912544L, + -1835018042586347444L, + -4191687948466793374L, + 4106435482907441086L, + -6130167349217050086L, + 620129892796426300L, + -6144158488464216798L, + -625006850515938527L, + -6682172611475406987L, + 1220842624016183584L, + -7098540157067814615L, + -4378743347226734130L, + -6508042393772984279L, + 5289282493574993598L, + -6781000719696595982L, + 3322666381578332368L, + -8173363279507413324L, + -3603049973704190207L, + -4316988796658196446L, + 914989291445423876L, + -305370752767861151L, + -6987550192802158001L, + -942676483343861967L, + 539036846465448158L, + 1605373100913987077L, + 7713068526230669637L, + 7241900405827926293L, + 186408038263119881L, + -2429472274603752977L, + -5720789098334319209L, + -6674769505767916301L, + -581393540490176967L, + 3124744789645879825L, + -5602915602343937931L, + 3263507419526132695L, + 6937077332985554718L, + -7919624999578199393L, + 6556190618267765484L, + 5682381095734864238L, + 7614251273120089370L, + 3395157685499349978L, + -6398328093992251036L, + -2651093395236575804L, + -2097470820892650054L, + -7267148748500151232L, + 5507274834982481157L, + -2194323672581532616L, + 2269493654210886217L, + -4216275761811372636L, + 7228709978053803804L, + 1544682503099095700L, + -8135200911288478327L, + 7339704802803690870L, + -9063598666954112733L, + 4249185982522288588L, + -4695745996091883154L, + 2627137268581003083L, + -2578238879441406084L, + 2429552460105156204L, + -5016405662860787559L, + 1213685060600888916L, + 5207480625629771054L, + -9039842400434871721L, + 9199909831090107055L, + -3171515520826634527L, + -1366973376209295366L, + -6750324026060931870L, + 8743899778045759827L, + -8621966377322960273L, + 4838450322903886505L, + 1788019071908015560L, + 4913822197134872906L, + 8309346613152344445L, + 7951951012499331460L, + -4689530477253691656L, + -375319494882093024L, + -1845044534505086395L, + -8796776862070375491L, + 5018318155817526800L, + 2586522091503534478L, + -4968582762284083199L, + -4927465852300428021L, + -2580812699959118622L, + -4904418483836862133L, + 4578001388519224564L, + -145427029490022812L, + 5605281842155781953L, + -8269674765102782771L, + 4873099922414055552L, + 2170749688227700120L, + 4825942009324106796L, + 1792050877115378285L, + -6605853503524394834L, + -3916692778840952841L, + -1986097963548896269L, + 7892537689540433594L, + -714136291891260346L, + -1648197774385026330L, + 3795404391823901459L, + -1987978550021718355L, + 8998001289418857599L, + -3968668700060172110L, + -5244271268838414883L, + 1096876802937588911L, + 4954206823378648244L, + 5569423710280172585L, + 179070914051875895L, + -1379762138674772955L, + -6297783890085466379L, + 8673286033209200164L, + -209771371089403783L, + -8371158182924445911L, + -7703744831611511871L, + 1612557317982335369L, + 1602832695339190345L, + -5248812496760442693L, + -555465681086935620L, + 2520493230458560658L, + -6666085761216925275L, + 7883921169936066300L, + 3038683421696596159L, + 5845618097380867812L, + -6239014819988016480L, + -8753088746243740226L, + -2330652362011359445L, + 840642889332131730L, + 4416624017275726341L, + 4690979542527364119L, + 5378555482069527564L, + 1969844668631546234L, + -7848379025576209733L, + 1977110971269560399L, + 2026765724811466304L, + 9004994755727389006L, + -2875238066205385075L, + -6183036361941845026L, + -2386657827628040463L, + -4350668673682921339L, + 5862965863197982604L, + -8441011186955249281L, + -7186928257432232499L, + 4577738672815669344L, + -4699309429317703093L, + 1727205267222358381L, + -6451216071831055595L, + -3419094732699739587L, + -9202486234602916474L, + 7995498040430401544L, + 2322468220197016729L, + 6579662275874920800L, + 7479989025114804641L, + 7484110942964095819L, + 2864220530563314806L, + -8398057079307137296L, + 6439003393908427189L, + -7835388314568774857L, + 5595140202807403856L, + -587980358622679054L, + 5729028629565035445L, + 7294164757654120979L, + -7034561723919575604L, + 5344573969684937116L, + 3196215998156871328L, + -1123378572589443417L, + 6074546259209406933L, + 2893792398378492069L, + -4483476567799717014L, + -3363408847369344926L, + 7141254867533804482L, + -5940527802490951736L, + -1094882559952364017L, + 8329622896679444321L, + -3173141862687107863L, + -7280018015022509268L, + -2089330837882663590L, + -354683141083920270L, + -4079664314326720324L, + 7616886288174535159L, + 8554847071096590810L, + -8173759087524336468L, + -3448863502458656393L, + -5738508186162418231L, + -5111997041556312344L, + -8550681297377936354L, + -4330402296580745208L, + 67088796475747867L, + -6874504283145514740L, + 8707156726330695854L, + -8450062796293630088L, + 327731584813515290L, + 7304259244110792264L, + 419104563434390334L, + -9153064691975026716L, + 7490483813653854554L, + 7077589656341495466L, + -5945353789867862552L, + 5486988927099214347L, + 4267202661349380766L, + -735203469934508862L, + 300049113155592253L, + 6668837619034437534L, + 213993526072465908L, + 8835245471465274914L, + 8183790714937497863L, + 8258711456036176276L, + 7136444522589690162L, + 1211565004822707193L, + 1989924245575051080L, + -218487864794566557L, + 2952924548635767820L, + -6462002167772557833L, + 5913246427219973975L, + -3174533491330927888L, + -8785311174506482406L, + -6684494991311010323L, + -2482601218412888093L, + -7285335761215045787L, + 1211034790718408728L, + -9100855059113049869L, + -1486270963118123907L, + 5275833683049609995L, + 8459420716417000011L, + 5533842052546250233L, + -6743116187090502104L, + -8218081861923503701L, + 5761628519765780332L, + 183841883985945582L, + 6376290782250169855L, + -775214822639981928L, + -8823028331753034219L, + -7585331840565087967L, + 2975478445973141542L, + -5063889138086837402L, + -2979700995440085783L, + -1219607777405733761L, + -7530208062940995205L, + 1583477077636770548L, + 687603337248263893L, + -7494884423475008422L, + 8422729696142094927L, + -2688483407638967316L, + 3899397712568319078L, + 7271622649506188466L, + 5081817906386987096L, + -916174376204972738L, + 1540653617218284471L, + -9108776863627327658L, + 409951124500633339L, + -1411012041120099174L, + 5254818079101287689L, + 4655192715659848616L, + -4055996322312971483L, + -3525221214301544451L, + -857176511645353866L, + -9137977946340218096L, + -2464138987127699380L, + -1572944913716776527L, + -5382357127457681304L, + 3400456476820781019L, + 7092666713014777182L, + -1016869719262402776L, + -4296380651220352294L, + -3137955217832540411L, + 6899747201222115049L, + 5612318743221858846L, + -3082611894693908037L, + -8765593464570788072L, + -8518170211087455673L, + 4127210266223470126L, + -480745760307138952L, + 6366437837796426817L, + 8633027726559958619L, + -4876440158972240126L, + 1910667810356463924L, + 525819879391508442L, + 728364790223504935L, + 1801852490210258450L, + 1693556137065594317L, + 7512677136171374024L, + -8502671549747219751L, + 6750465734377947195L, + 79926463486212071L, + -1606928706353092712L, + 205498205560429840L, + -8511147442275932832L, + -8428335428540761347L, + -7426388905907916885L, + -6514050737271088879L, + -2450758388754574856L, + -5091230991480586360L, + -5169952131144179624L, + 4447490729022261013L, + -3692318537052447395L, + 1078660998337165744L, + -3916568308067450676L, + 6024800331836073525L, + -8107333408030092167L, + -7607289536558565257L, + 5247807205554828460L, + 136732938448579124L, + -7158883148260417938L, + -6099971793579365853L, + 4854881589738432309L, + 7711527295835389228L, + -8549957081212159598L, + -7303058748474201722L, + -7681406204943895241L, + -4881190754207950300L, + -6035776958688302906L, + 7214212236240295751L, + 1981012208386034732L, + -1049989180117070494L, + 3924935253660959406L, + 512859785555014414L, + 5908617682678575542L, + 6758310316951005278L, + 6189924959604816301L, + -4920405470515789427L, + -2117869367297703052L, + 6707816747990551118L, + -4980047489747530190L, + -7365247289662920271L, + -5342685489927387987L, + -8590216048531947264L, + 6817356446955049603L, + -1378280258813293636L, + -3592400710075707758L, + -8871693364702999347L, + -6373833613639184348L, + 4797638018086956108L, + -5647576741545902954L, + -7901112803680191059L, + -1362942868170890798L, + -5813135684692802772L, + -711135680335633766L, + 1062354220967606079L, + -7871043181645557885L, + 6112341712359859833L, + 7916891160508372008L, + -8003652862887082098L, + -2396517101239953792L, + 4370059680750956803L, + 1363641917746765215L, + -5876946297329039758L, + -103128310036998617L, + -3800790044039752368L, + 5199080865813174926L, + 5691839759690453434L, + 8175397015029172130L, + 480520985319940721L, + -8578753082637254739L, + -6716879961856683419L, + 3597461575855927530L, + 4979191387439246058L, + -8320455146441525699L, + -2114691132483379200L, + -4537130860792099169L, + -5718306086279916956L, + 5136790107805442544L, + 7289096860375296487L, + 2880058958308819603L, + 3767398060224293737L, + -492404481239348279L, + 9012315970305384994L, + -2684151666886841943L, + 7272790214055332206L, + -965422762587779909L, + -5443848734878691959L, + -8153873600234827448L, + 2490597961970604400L, + 2281204882791254127L, + 9133290251048762192L, + -1491895733843702610L, + -3474774710279245800L, + 4612394989169216779L, + 2622616589522119419L, + 4355987380154620492L, + -2850604048799570616L, + -4107832232055765572L, + -3723943963188375533L, + -8366293232338256548L, + -8701054798330196757L, + 8878901433891377891L, + 7295106607144564961L, + 5312667635062107659L, + -2358396954926641322L, + -4984697743423066531L, + 8939820283882288854L, + 4023787057481178052L, + 4597747073035337711L, + -3865522208345382306L, + 6560083733272461230L, + 2427578708615942986L, + 221210573151544106L, + -694084245105944199L, + 2078710449028907801L, + -823943775911009298L, + 6602372026224749570L, + -6054136931573131159L, + 601483741465077007L, + 6742891241881907768L, + 4262941380660230060L, + -2511197275383350546L, + -9092751631744236653L, + -4870448764794484926L, + 1830385011126178734L, + -6596888154152123634L, + 5648158405496157638L, + 6386181707589856071L, + 3363359913697235141L, + -7056659780210553822L, + -5261178176756493055L, + -3944960812874472523L, + 2763181386445379193L, + -2619663536437942233L, + 8897272156543942808L, + -1257206140816012022L, + 5942440353528557164L, + 4786157224137440415L, + -9220126986536151642L, + 4182399256221021027L, + 5315354483278533273L, + 8269371862567018757L, + -7830778159860165874L, + -4812100746794420620L, + 3498354375067608851L, + -746722368941475584L, + 7380715032997081755L, + 5189957981103089885L, + -4300428216272672646L, + -408627655218877478L, + 3669295430170749153L, + -3178922344308130598L, + 808687805654478372L, + 7382854145017135524L, + -6443473827958318421L, + -3243447797010153128L, + -1263178138991133398L, + 8750726774705960543L, + 6533471826240257695L, + -7394781107965678936L, + 7513264927729266721L, + -3004378607368189670L, + -6171795523163885499L, + -5383549323957030811L, + 1014976843641973640L, + 2432193004343470889L, + -2321713758391047034L, + -5925760547403348951L, + 236543589293463223L, + -6902103426228510687L, + 5049656219947439343L, + 5906696563051122955L, + -6356958402903730770L, + 7486754190124721854L, + -6788905906689198314L, + 7381793004093637930L, + -4615937202128935315L, + -5266672324677452216L, + 1047319090632526857L, + 9103083281304922244L, + -8812437015774444320L, + -4970183476407639031L, + -5247957782476148736L, + 4465954112135309385L, + -1053934358778018400L, + 5829139887286261453L, + 4669463005092905624L, + -3286153457025266798L, + 6416979317993515170L, + 842322401817513616L, + -1776383023933641969L, + -8880210007231865557L, + 4508732217351572993L, + 1193868998902473261L, + 1613803703795008000L, + 7204477604144047047L, + -8681096723143103693L, + -1746910701409113306L, + -8920378322388987992L, + -8966483163014777443L, + 2824165487928805094L, + -5662128102397495131L, + -6624810964386882286L, + 5452692340292941871L, + 4316228119275391983L, + -9085964721275713953L, + -2133433404692719643L, + -7343693486447937998L, + 1109852172632293793L, + 1921023425304227346L, + 4854131887624741149L, + -8634651654935008313L, + -4727747937541913857L, + 245894689954376778L, + -1171354806284191550L, + -4449375760321500296L, + -2278035820133972979L, + 7026254152720723131L, + -5122868976531507196L, + -5791020171604844054L, + 1901595461796531398L, + -4888600188203895159L, + 5238583255328115684L, + 8191725727925819882L, + 6907331918345427440L, + -8330998437541118229L, + -7677204855776214746L, + 3733289736446750667L, + -6086367961329321564L, + -2223139316713310111L, + 5551603720291777494L, + -7284366962105424622L, + 8307035520655908816L, + 3515558653608239510L, + -2623185163047066159L, + -2881473020374695697L, + -3119109298045318191L, + 3915842281774372758L, + 4341838354106623860L, + 3536460086838807366L, + -400436201916140511L, + 1034940505346304444L, + -5677328290907787965L, + 3241577004049148165L, + -2177296903540985003L, + 1224705836089007055L, + -7226703706701449257L, + -5217415576556159333L, + 2723639485365257427L, + 3532882935985140762L, + -2367665914582725528L, + -1126240810191393257L, + 6572389991681822664L, + 3742078454964142074L, + 2537741859858174488L, + 2863650720786458695L, + 4444554472903165566L, + 4972147385910153832L, + 565306137953874174L, + 8228468642079060801L, + 3686959913775111096L, + 5015958178622222071L, + 5595710504305494790L, + 3174461843483976916L, + 1297058991090722108L, + -2693601104595504655L, + -3961646960717704540L, + -329224545254449497L, + 8172319141947522776L, + -3283750417712288364L, + 1484324135840360777L, + -4101313183342306762L, + 487423326160209394L, + -6984064475638587471L, + 8613232447441028099L, + 1138585794312519742L, + -5219522830444455097L, + -7068591267064606505L, + -214092808701416145L, + -2087748990108944657L, + 293814116254359703L, + 7396092072095010078L, + 1104271143132319796L, + 5950063587854161963L, + 1918000905829023199L, + 3382742654219329797L, + -7668064903330744354L, + 6592480311131388529L, + 3771018342787175035L, + -9209379343054099077L, + 8809433506817785437L, + 3622962127039251936L, + 4637085440835592271L, + 6356420981957532639L, + -6037359062089609360L, + 2809649815120543037L, + 4910545367671356353L, + -3641944013579376181L, + -4828543933815929748L, + -816942255851701146L, + 4500737028494484698L, + -5360859409398459244L, + -980188011105516319L, + -5341147405229376051L, + -5059204503101732424L, + 2323241341608001835L, + -7234489726660109408L, + -4399342489059768231L, + 568957892278445175L, + -3128288682699716902L, + 268059501110939604L, + 8869377529779418169L, + -5191201845817789231L, + 8742584095090015507L, + -1833031289184026905L, + 441773167769005703L, + -2862985803782167939L, + -2217136279577453892L, + -4699777063743038799L, + 2319030942204069894L, + -3096829301818651315L, + 2152089781530614740L, + 3591093109998414360L, + 3737787276968062484L, + -2075424185432267668L, + -1313631551970774685L, + -4919910057472342658L, + -1163170530272854872L, + -3783140882996568908L, + -8037533461827223438L, + 5147544332470383179L, + 1327994358379982364L, + 4326125443692555139L, + -1720554764987678589L, + -6224447350716142955L, + -3664233167161816084L, + -1358465093069484872L, + -3170767669678732241L, + 3175800087146479659L, + -16337625285930414L, + 4460646835363181976L, + -6184155055121584051L, + 8105205207275831311L, + 364645839147141988L, + -3252358421106878137L, + -2379855386905973850L, + -717996509442787349L, + 7039157268142466226L, + 8799412946070712593L, + -2256794007843286070L, + -3026828459050443467L, + 6316354959643887085L, + -632743241481339103L, + 9192761499170372867L, + 7519964503218211187L, + -3171788476130391814L, + 4205532823146854278L, + 6513522002710255853L, + 4968793986534390139L, + 7924914011447575185L, + 3506146014983106198L, + 8511722175131586351L, + -3535216109813816630L, + 3043419627940964079L, + 1989151438749037821L, + 7233464223954842358L, + -3249615372439963990L, + -8665368429824794064L, + -648378579874199315L, + -4727955777856631607L, + -3689595611110413143L, + 3856183988075237273L, + 5517263844496266427L, + -2433339568447789451L, + 6589509038357236405L, + -6774119612186335761L, + -4350036823275823154L, + 5834187175154047558L, + -3767301317720281706L, + -8702001427232534750L, + 94015559239255499L, + -4379700402807826L, + -1859937611212626430L, + 1226887111095682425L, + -1185076345898896498L, + -7829178625122620180L, + -2280062727697501740L, + 2556040939242422304L, + 6251964074628081557L, + 3066879182290958720L, + -8785644387968277547L, + -4488264477615612586L, + 8127606717194526874L, + 4890787706249869594L, + 6356833732756963227L, + 5174834866809420309L, + 2027973333647796824L, + 8053801885705963745L, + -6944307380006370243L, + 3113788140330654611L, + -2986910451567880470L, + 2425903292748474372L, + -1715269818440437717L, + 74338710306223399L, + 5132849055217923687L, + -6714922651557874917L, + -1476767669230945550L, + 6267869827386314060L, + 2151492872494414422L, + -188287405141817418L, + -2396141142455784570L, + -6107851785102021570L, + 2899506268788328800L, + -7955799538392167846L, + -8939834619099069255L, + -2962366035946053462L, + 3123384032637701312L, + -6706608866229291712L, + -3500046218323398125L, + -168870750581166069L, + 694099585994227916L, + 430038091926664816L, + 1624356164486366102L, + 4334130261304381128L, + -7324629223026415329L, + 8823152808567544116L, + -8620326148777841379L, + -788126204987848665L, + -8814182475375947241L, + 1080002348337528081L, + 3043074730722911830L, + 8234596790989448752L, + 4608358602898896255L, + 2343398753207867914L, + -266697139298886785L, + -159260171872612558L, + 4370044052923372524L, + -2995614366415980410L, + -4209600344306251016L, + -8755371846184338683L, + -3955855588499799050L, + -6787638727374739702L, + -8849461119575970289L, + 8716688164664398086L, + 1514577502053504108L, + 2240729936627952880L, + 2838465136424227986L, + -1487161195056206463L, + -391895021770092123L, + -717250607935411377L, + 725101643113018626L, + 2018234564447318861L, + -5254575322305083709L, + 4424742596549423606L, + 5662970072122589602L, + 3130397907087802883L, + 8049486087948419299L, + 5557801586424368035L, + -7085534093136275857L, + 5600569740806125553L, + 4128462226512133482L, + -1574925284503437735L, + -5135068613676616410L, + 7314046845044324564L, + -3686747832999142812L, + -1564972575538757040L, + 1120348884617118977L, + 3412879446395492399L, + 6962651138322613963L, + 877006726541596979L, + -7866734399584535627L, + 8572173997988387711L, + 3835382868124934929L, + -2583877131516514905L, + -5102649011667592384L, + -4798459575624269557L, + -8156429235664983329L, + -6239845266330519720L, + -1914747524813276529L, + 5363997714419355781L, + 9210533546107024609L, + -5245165629299500976L, + -5193672401549237041L, + 6597128830638074557L, + -5969845161062876521L, + -2445089653030403139L, + -4797981019593561429L, + -1962888612492761260L, + 1803013398616297242L, + 8744887681327442130L, + 5851196282496012008L, + 892128523146305717L, + 4170022229766562081L, + -2134478426920707338L, + 1238027773513435748L, + 8866916391213127576L, + -5827099544905007258L, + -1552818987126555097L, + 1979982077379021084L, + 3998394901457623548L, + 2787580374700656688L, + 8372209727011402499L, + 3409775566082298245L, + 1114413850985679686L, + -609417232397692848L, + 1762759225268672019L, + -378983625905076170L, + 7435306721054054073L, + -5155196407132036358L, + -1668786196380559129L, + 4519643915893375417L, + -8609870523645938036L, + 8590593064246052287L, + -7126254452521759890L, + -2826314600096007100L, + 1624568634286818020L, + -450700576225246242L, + 7539390560191158137L, + -2188075991300573837L, + -4681497720947957856L, + -4688143896220383919L, + -4305920512968147039L, + 2656654774987994840L, + -4854606985975851256L, + -5361383744936804655L, + -8947485315238255267L, + 3311598196079410229L, + 607952732017041432L, + 4481836561581728625L, + 1856670507280870266L, + -8371889865268432118L, + -794649732821127929L, + -6144467833645861578L, + -5870596264115217421L, + 1547182795679877050L, + 3554393108243259363L, + 6096915670896392585L, + -7585113688284079403L, + 6283800140108182083L, + 7325444638523598785L, + -2676741791420355695L, + 7399210828703529226L, + -5153686314010544980L, + 4553182987876882087L, + -8475602433165535745L, + -7549754731031245776L, + 383864735074387336L, + -1462360910626047142L, + -2503433555198690048L, + 7124680608501705883L, }; public static final long[] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = { - -5752995443491633966L, - 6697150685477982789L, - -8292226578951944721L, - 8469039529317823308L, - -2857784829002285502L, - 2708946207299695398L, - -475923488709545204L, - -6776550864174025842L, - 5997435870397431563L, - -1413893264211963655L, - -2557925560926552642L, - -7786449276288726217L, - 2663862252392472519L, - 8293182564608143680L, - -4991485761665135445L, - -4260167493401566131L, - 8397271794406387881L, - 2767712210800417827L, - 5643454605919104416L, - -2096221407055692639L, - 4164971193688274917L, - 2012618980459220155L, - 4502510481524221164L, - -9150753967845211809L, - 2109736127223229935L, - 1705328223411648698L, - -540252590844239442L, - -8448139437911662946L, - -9172921965178401452L, - -5901063484397960162L, - 8990179058523403886L, - 3191587668216080419L, - -1505157133869540426L, - 4826297514018361126L, - -506720607717191353L, - 546407899098652120L, - 3565976246504851323L, - -7513490578875853277L, - 5136885717551856091L, - -1235315857278978092L, - -5210210379482210601L, - -2670168613513456171L, - -4576802255731115784L, - -5498085225412524972L, - 5454622260446372900L, - -3491156961084957616L, - -2040190370914817596L, - 8748880751719855958L, - -6066272418698883734L, - -8123169723410338681L, - -3402048629088769519L, - -9050773182933316170L, - 9109683037362136984L, - 8292736658273756483L, - 5864675646204731276L, - -3410199798914438762L, - 6375136202365522231L, - 6084483678447018976L, - 4341319149581895135L, - -2617192247437531424L, - -7803896693111046938L, - 6612714826762703589L, - -2604165952446921239L, - 3956924213727943389L, - 1828772354490899965L, - 4565769277738155679L, - -2552163583152823111L, - -7282771451698115771L, - 1541537288639310430L, - -1260053141177242892L, - 4470999817094301913L, - -3084949271203311242L, - -7546393470851473997L, - -8966028816522567997L, - 1051341974704645729L, - 5538793834884616099L, - -5628104741732354066L, - -8951130142602632322L, - 2719505240413599325L, - -1008778746385874696L, - 2203198775211410780L, - -7143533605672789717L, - -453883261782705024L, - 319057938868287727L, - -496754595070837553L, - 6805613814053675206L, - 6132340656385066787L, - -8860356581867026581L, - 5016198123629145689L, - -1596369660096962742L, - 2766685770642558330L, - -6266516138812319453L, - 1921783429840399290L, - -5251293476201135485L, - 7108628593359030710L, - 8093943502713971156L, - 3074597418887950513L, - 8333496602590533977L, - -708020943442059956L, - 3102625642886133984L, - -6499370722788023494L, - -6917377031919774998L, - 6901729616079135501L, - 4521740373890802536L, - 2717665495303183111L, - -856278075863271097L, - -2502885534841887818L, - 2357338131581904382L, - -2522296722172564384L, - 5979169122227632125L, - -1990576311176786902L, - -316116701196334114L, - -6739126101832001255L, - -330238767430913485L, - -2397646708417573337L, - -5746367286277299531L, - 3388130732766130858L, - -7310644851569314744L, - -4824388967193941498L, - -648780185892102954L, - -8712468613035181241L, - 2711516130478712762L, - 2754691483449550770L, - -2790972617414146667L, - 8537743091160071936L, - -866831535856147830L, - 3962787639412434933L, - 5751063116956730026L, - -6343210590541299672L, - -9027452407994212939L, - 7748080448177464210L, - -8875675911298011676L, - -3943374007835482499L, - 7098683995859102865L, - -2275458998280053925L, - -4628453854860491915L, - -1529511772279148360L, - -2871057272253482780L, - -334841257423340530L, - -7314747545247602053L, - -201172568470226645L, - -6965846975881685612L, - 2309595871631956781L, - 8951003723927622968L, - 3001873710915957640L, - 2012064170299142173L, - 7095981982072554477L, - 2920562163667542830L, - -4511110467250954239L, - -7166611815479236612L, - -2211021712129656794L, - 1338540767674038758L, - 3487756347488888084L, - -4937557446668954437L, - 2620388879014721175L, - 7208356694606927210L, - -4513132828283918504L, - 6317549580437550543L, - 2401779216570746255L, - -5457469669547078677L, - 7471661866970627352L, - 7386623443212346251L, - 6923730215630122759L, - -2325097522428671189L, - 8000364301902289246L, - 4925551359859147160L, - -5595982422094382548L, - 7228349132916965209L, - -4703354695115981511L, - -2115306052026418681L, - 9090854014723212293L, - -6068838827925313383L, - -6558621713962157376L, - 1473800012311082935L, - 2525181364542947966L, - -6021645913223485972L, - -8318988851482275654L, - 373007065698472266L, - 795167131148895585L, - -532571991837954792L, - 7238159482918777429L, - -7525111696825330223L, - 6189481850281476163L, - -512400154882781230L, - 2185412829792057998L, - 8303821120875906039L, - -3658266464759815456L, - 5534191248734418007L, - 6101574779391286487L, - 8145964650042952627L, - 5391320846882423376L, - 956217201277458121L, - 2237749983378005618L, - -6656683242892884554L, - -3394474129803761342L, - 8406074839295737353L, - 8623233445127821330L, - 6897419204888614556L, - -3873285223086133426L, - -4449195818654013260L, - -4380415985865610994L, - 1843484917925416568L, - -3683421128553731612L, - -6759630266574317021L, - 7963823663074411611L, - -9073210183338934836L, - -4207841706309087395L, - -6317104811444343048L, - 1176967159244991718L, - -8150985710604331729L, - 2463641502615436945L, - -4649906465921856966L, - 4753784510776661068L, - 1401826846930455507L, - -7215160016399204667L, - 4222527227332022097L, - 4242038843438232290L, - -6229200518763707451L, - -7634229331990944723L, - -5906084857878661851L, - -4471729319982253726L, - -7488818713861180407L, - 8958437567708072797L, - -4361717585953265517L, - -3589345870120547258L, - -5656002784155139233L, - -7405858066073224924L, - 7261298787749646565L, - -2118323539609274283L, - 8440646816505080462L, - 4907492019172743241L, - 2971795108974926972L, - -1111694536287943778L, - 1092562971031582110L, - 7435780765000923721L, - 5815238393374335255L, - 3728879363004790298L, - 7950374680552679377L, - -1559646550697408809L, - -1009638403217698280L, - 5477007325533850929L, - 2802315771636654550L, - 1359831828875761363L, - -6244291732477211457L, - 9138108823363225790L, - -5700703633273694371L, - -5189931767235375959L, - -5917217031437644153L, - 6559980057173897885L, - 7585954365066361941L, - 1833254434142522137L, - 2622798612834078243L, - 2935894269140572959L, - 3342180495858759098L, - 7763655187214368195L, - 608976619205971467L, - -4493083204513432310L, - 5655458152670549588L, - -995372262620475933L, - 6725108152764242753L, - -4152678539161864839L, - 4879330012023732227L, - 299691067249437340L, - 8253082866296742941L, - -1349088245542024700L, - -930670635091392036L, - -6305033172145799503L, - 767676528758696723L, - 7848289152882068204L, - -5335123725692922309L, - 7618587959592606045L, - 1310623412826253949L, - 6105911509337366946L, - -5132873445536420119L, - -5066374717991788365L, - -4196018003514359930L, - 4602399218983903018L, - 6996237050722228275L, - 4750432263399753517L, - -6552768219041772261L, - -8886514643984898377L, - 7353718498017818617L, - 3420752363982256164L, - -3106921624226184176L, - 7755185569018499850L, - 138048424823142520L, - 4574855394856311409L, - -797116754680671576L, - -6319525882248058891L, - -7211292892013797268L, - -5969262208310571743L, - -2242517284471541983L, - -2134523085752830969L, - 5239925547316736378L, - 2211989170649079345L, - 3951874086467810189L, - 1541713943974254342L, - -5392854420512731723L, - 3564316510315168871L, - 2901564687206922350L, - 1540984989266277585L, - -5588692335575710649L, - -7656900483971665708L, - -1269975572006533380L, - -8586683894725424637L, - -667220377486025270L, - -6992322247305413343L, - 1020432414035508475L, - -762737570699341127L, - -4996438874277990597L, - 2399099134154679381L, - -7294753205977958107L, - -4330814694281211877L, - -3424505945178467498L, - -3908232167211290102L, - -1715708172189155463L, - -1541677764411125216L, - 1443437733037296364L, - -5699613322350318170L, - 28422381221154018L, - -8448942739014323861L, - 94089349704640679L, - 3121324325667558058L, - -2027215282474423693L, - -9090860166446867101L, - -5570813680167514715L, - -4433017494388855624L, - 7780214454833321289L, - 2818118075900140158L, - 7909566890394565636L, - 3281719552865083509L, - 2293428426098439431L, - 4831877444478608421L, - -8036810704178721498L, - -6696440698423871679L, - 424663572619708233L, - 2210379950234460182L, - 4488772831440475400L, - -6238973969104209915L, - -2892035378057749818L, - 1190083349888328687L, - 1900956434625552346L, - 5686029047839893831L, - -8652319297499303518L, - 5660206937964935444L, - -5693798368774435246L, - 326881025455212277L, - -8376143443592681499L, - -924714482174160655L, - 2731102432407909647L, - 5974710608961653241L, - 6662943015421622990L, - 2629145426514230124L, - 7653779470428211936L, - 8231699528634814943L, - -7880485152483421857L, - -8715291256937697509L, - -2608260639142008146L, - -2891414416406033026L, - 1006672424561275863L, - -5345465745471823175L, - -3007098514343148833L, - -8853686550740270619L, - -8826799561287303533L, - 8800245871751669511L, - 565431636219131046L, - 6137897978460556916L, - 5482308004417669307L, - -3006854606371770142L, - -5550863738981833513L, - 6860154257076535929L, - -7830408716033920139L, - -6220766884162806429L, - -3254641290637732033L, - 4069104293139053208L, - 1298727460612851492L, - 5145793087755505159L, - 4012194405015900827L, - -2096633266369036577L, - -235600124490809513L, - 2256248865523312538L, - 1856550792634706370L, - -6338437638663913139L, - 605690123879344699L, - -5972006707479557169L, - 2788841617850067275L, - 3341756482258277517L, - -8730087995322499274L, - 5666761853789513177L, - 1427855942817620030L, - -2247084578644277545L, - 2632056116244532492L, - 8983184113458203674L, - 6222824259917067927L, - 832847538082989274L, - 7408336855734508382L, - 2463234904146980715L, - 7616355816816829131L, - 5437320614714817066L, - 2176649963064497163L, - 7847964877858458386L, - 3676215252045438118L, - 1457265625453915305L, - 421670244665897930L, - -537286355906412984L, - 845546777083974630L, - 6294586905906742451L, - -6979812383811440761L, - 4101166573373719960L, - 430647036995334093L, - 2563569094767382754L, - -2226117486192197040L, - 3989815455278220803L, - -5573460076032648378L, - -5149764105493446507L, - 8908023797302087394L, - 1579875413248797693L, - 6557085398158756277L, - -1860582499397819682L, - -3940264269551745098L, - -3760050418257691649L, - -2749137550200198091L, - 863749834414320446L, - -1701674908797410602L, - -3441531459858237116L, - 7781166611943523849L, - -8747694838109223765L, - -7940615954936651322L, - 1761800111692886098L, - -7563608795264216209L, - 2430120273101259962L, - 3034607409190630193L, - 7596606678605264709L, - -8815959038019965324L, - -8056592803858661736L, - -6054319005531061432L, - 7637990614259037480L, - 155762651336866309L, - -5295066003461610118L, - 2097996021613363354L, - -2649318637576910563L, - -4710689453059380010L, - 8675276565266944323L, - 4061820304631504890L, - -865251409507836874L, - -4305544705996842550L, - 8133733737104758782L, - -3599082219550900640L, - -1172444168425884022L, - 7002178848795582841L, - 8753574524527561837L, - -7959972011549631263L, - -664335750987460129L, - -7761182775497779250L, - -201978935828898840L, - 5748605939155571413L, - 432959146257511060L, - 8597688997048592708L, - 5979346454620003082L, - 6682666834922578474L, - 3635671342630844084L, - 8295581682942403968L, - -6056716329065906860L, - 4876232349596700627L, - 3282465211073936357L, - -6277210138874800012L, - 86063810903062668L, - -5131034425726984549L, - 7879994284944917570L, - 3805360137603820244L, - -4819745855255108901L, - 6005083603591253720L, - 1260872260703386533L, - 6208805585589862489L, - 4467145362283493250L, - 6925593199187107448L, - 2290814776012496288L, - 2202094536385319447L, - -1583289128964920170L, - 2414314858213839292L, - -417375850490384234L, - -6775757096712023859L, - 1531877516325565400L, - 5092160435195199211L, - -7779989257755281504L, - -2910324314591098862L, - 8497090690994716777L, - -7802963550632908400L, - -6411284901845568322L, - 9216337043421866495L, - 2437859992012674232L, - 6960237011186167617L, - 5100162418749277386L, - 6509562170805894274L, - 690433361758303077L, - 5936816351771558334L, - -3601277060469993805L, - -978457311807747406L, - -4420940034475608949L, - 3538644062391991755L, - 5164625733904685628L, - 192170982312183453L, - 5014044649793050646L, - 9147945450485230993L, - 121096778422978126L, - 7076446543359171313L, - 3849792111065500559L, - 7235530029899206334L, - -6832803917257794399L, - -7448095328943903784L, - 636249030288914450L, - -5837508951408640620L, - -5494182545899908814L, - 139946096999437232L, - -7949772735307966448L, - -6777152677072204821L, - -648210928302263569L, - 1484711477581900777L, - 1415763754612838143L, - -107058891244037140L, - 312958362296582989L, - 5071518533113132226L, - 6638935098145563092L, - -2867055004276813534L, - -4289503497262086936L, - 1497170552728782805L, - 4517675483628149735L, - 3748960245079903666L, - -3691286664879128054L, - -209359184536764749L, - 2491341916818449085L, - 5499205217633027745L, - -5512709448748519671L, - 4557913818063026938L, - -2112204135968966196L, - 3440403110217462895L, - -5867323792132309155L, - 5420869064478055006L, - 318512041709141078L, - 1057553941897233483L, - -6895197562631981270L, - -5782743651675563936L, - 2659771847560443960L, - 6592601119187496548L, - -517270229881128849L, - 2622604378506727519L, - -9170205866690625639L, - 4806630682514823179L, - -7776613972641981358L, - -1488298548028258830L, - -1715707210842296824L, - 3796221982870729299L, - -7882722580553373597L, - -1797548791879939131L, - 9223079908042491188L, - 7847548061281742781L, - 1041148225166463713L, - -2800037601895587534L, - -7832361151307182116L, - -6950576920927850414L, - -2404378656089204258L, - -7720362412660524651L, - -4901646243176144926L, - 6432612866296388591L, - 665821462715291984L, - 5024465184664377182L, - 1558901948449801231L, - 2224934457550741787L, - -1486153720652331467L, - 2152321067003602002L, - -1858128886354189097L, - 2873839996181438535L, - -243875524287970697L, - -1376873654537129986L, - 3287122656145633441L, - 3770833946582728674L, - -2764900700916121857L, - 2560091717993161785L, - 5504786539926877426L, - 673505854315501819L, - 1264431652537758499L, - -5043418235491208409L, - -6769065002135856586L, - 7666088207808456995L, - -2827685615289224220L, - -5429383711816435171L, - -3134385201210164932L, - 3020879270457681824L, - -1689344584352272080L, - -9040930749904066060L, - 1932280955101101310L, - -4992572509975070322L, - 7546307129163923078L, - 2939073542428222766L, - 3374974368464231869L, - 885759554366311L, - 6593789636519856798L, - -1624132412418983395L, - -6031359656290740003L, - 688983212618230553L, - 6369052776794949918L, - -1377714920269304294L, - -1057940749189840506L, - -1655685782041312329L, - -110552080942842283L, - 5250633774704933933L, - -7909648255758272745L, - 719735976337939580L, - 3645906512854567933L, - -1860978834085668115L, - -4349804709624489457L, - 7923661347327064185L, - 4244126846532735429L, - -3251399312816082643L, - -4937029742581158563L, - -86298941439722272L, - -8597913327563881758L, - 5039882027531808464L, - 8056647111062079524L, - -8976752115766926062L, - -1690394607348932339L, - 3378746565484573129L, - 8416003090844044193L, - -2717024430934601010L, - -5701892799453780386L, - 1533981283496523540L, - -7462371343115417598L, - 7010080256761797460L, - 4478373719647299143L, - 6305458678328463570L, - -5102763036459098393L, - -8778795989564198209L, - -2268889645684651974L, - -4555916510323499535L, - 9065546065927673888L, - 5852839483910534806L, - -3402482240912256878L, - 2023722994972298169L, - 5215407550830003324L, - 1071468158469513836L, - 4955237436537987038L, - -3083989516400027076L, - 6722953813435001988L, - -2387850610416371552L, - 809463730078568982L, - -5395203458608056891L, - -6137800097014878795L, - -3605527194936796968L, - -7589842792710116365L, - 8069067842420108257L, - -7454408306272078350L, - 2339188701288559996L, - 1008425726458324286L, - 6847676052807732318L, - 2271618337058209406L, - -8281033180921892670L, - 3604010165737741236L, - -8269928557793008073L, - -447391999287823556L, - 8028984830780334836L, - -3883350805508230356L, - 7482610679805814070L, - 6500112572029535883L, - 6119648543352512696L, - 6922212850686981745L, - 1734731947537567857L, - 4101619546129582628L, - 9155049639883886519L, - 5849304319215085011L, - -135976101808023055L, - 3329888204068201272L, - -4336188293967075047L, - 5788433959497374483L, - -1402363557578146821L, - 3588707324813677961L, - 6715232528053729851L, - 7169368150013526008L, - -8706746826857587245L, - -4819316543846777649L, - -8782313301067526525L, - -8916832875484128383L, - -2346600299358242263L, - 1904681875169970567L, - -6704056743702639344L, - 2270605299750783360L, - -3940808304480228961L, - -8321565943725548488L, - -3825742229541937514L, - -2349339074190735472L, - -2948486946206330984L, - -747906506207273746L, - 4280562720015859798L, - -4136257343808753176L, - 8445283324198191059L, - -8404850409602104913L, - -3264457032343850047L, - -8759790595969078254L, - -2542190711281684773L, - -8843544063303913454L, - -4003746482399952206L, - 3841695822551400168L, - -3588090911679720182L, - 4918585626351510199L, - 9222791837897484065L, - -5760984091213555378L, - 2491736142884395009L, - 9176699063949977552L, - -311336022868801049L, - 6098071943696363607L, - 3781539988474542156L, - -5991444272878304549L, - -7058079929087833240L, - 3692880174470651745L, - 8043184184871662514L, - -2260533056334755470L, - 7862870576355526775L, - -1273628657555198089L, - -7116245059732632210L, - -6206223953545513505L, - 8769478588548603347L, - -6809293819712164844L, - -7072037946451047577L, - 5145959967698376997L, - 3918549975422395928L, - -3688153306502628396L, - 8933640809529662946L, - 6586386948093068301L, - 4314174515802583045L, - 6042832017761248999L, - -2163096650317259801L, - -1301538385158714097L, - 9157628132063555931L, - 8447192224483369575L, - 1082300847283178879L, - -8765613093828266962L, - 6523561351628630699L, - 7878456944142132573L, - -5878800239136723413L, - -899016955838748566L, - -968680680108344572L, - 8149351788840205925L, - 7767149159758237380L, - -1002433668001324671L, - 861378480610089679L, - 5131370442347562734L, - 5891997968737511949L, - -1134130780427583438L, - -2721284507442384384L, - 3581758406053663578L, - 4711959109881063237L, - 3814833207703197149L, - -5498755072540800142L, - -434194050930099095L, - -1131324138179189444L, - 6335673834129040499L, - 3840591353873435091L, - 6691477876637098998L, - 5389042814799436488L, - 8492537662085986759L, - 9801065220990358L, - -8991404774454959964L, - -5967334022174632862L, - 8423499844379835696L, - -1121320485100692308L, - -1137347326607533713L, - 3579131621253541604L, - -949637496239973913L, - -845717236495377944L, - 2627652869211543871L, - -3584273871358543803L, - -1231456733798526473L, - 6404279318428525466L, - -1959366387574498651L, - 8659995475649499110L, - 5687743493891209750L, - 5734157541830063944L, - 3807145789061111632L, - -8728883033962465130L, - 1886310705344218044L, - -2869995344352648369L, - 8631433038774110827L, - -5196628823587587974L, - -7457206590006693637L, - -5287470411743602489L, - -4100864542827687276L, - -6925193246164904686L, - 684773938147799771L, - 4684480184200832071L, - 1138521418475557396L, - -1024452235617887100L, - 370178077665262107L, - -2580904250658458088L, - -4067270455265760110L, - 7883457924958258236L, - 2745236661071909096L, - -6638753008619557401L, - -1928563245103591922L, - -5391677730310963265L, - -3443398620200795730L, - -8921877650888014333L, - -2549654053467481876L, - -6634007310328959288L, - 6662969652277689957L, - 5704789109069509625L, - -1307333292330657763L, - 6533595699848914839L, - 2206229619406776067L, - -7059181012292774208L, - 8587013829275411963L, - -3759394797281060169L, - -8332558387862436192L, - 4058454963111191922L, - -2909318126609562718L, - 8309425769040304384L, - -3332518656544710523L, - -53840526904216763L, - -4392299612463469408L, - -6495163012164872108L, - 8283822043324591205L, - -3839429045227492113L, - -4554258591908844950L, - -8717791527048532273L, - -6680294812840082731L, - -1514076315369906827L, - 8342331288999106348L, - 4467472370913596089L, - -5258687569970231267L, - 6428083210523097473L, - 2293947403016663486L, - -5526361602248141114L, - -7270937093961275072L, - -7226206738482320242L, - -267988759137059367L, - 3757842653020528703L, - -654142607214292501L, - -3877320323095024097L, - -210352008325460011L, - -3777353653906366683L, - 4104559760354145145L, - 6351620637332827086L, - -3953047538968937343L, - 1977509989365985520L, - -6096612777648073834L, - 3655449697279862217L, - 6371929595416244955L, - -6719663260573101322L, - 8235058461435871026L, - 8223610568265677874L, - -636776168225445543L, - -5658531495972000806L, - -1315157075774308702L, - 3318184564168373738L, - -3870791042207323999L, - -5761074459524531162L, - -7589695080417675674L, - -118243652515378968L, - -5606050504941145854L, - -1682232575263053834L, - 2064607730151462051L, - 3860046528687723210L, - -6935238833286905572L, - -1526898475961616862L, - -7786760789279579722L, - 6367271805286224450L, - -4333115896551664911L, - -1229178972379399952L, - -5406430689127328314L, - -8536830855104540258L, - 4592858633504932985L, - -4661004590562426651L, - 1900079872513330236L, - 803518532278716272L, - -7227731911919645710L, - -1531800249475624901L, - -5068571120099635260L, - 6954901733800148115L, - -7075071323703859828L, - 1447978964456769515L, - 860006115119071319L, - -2067420548322589555L, - 4638996254844315967L, - 6983236581726963935L, - 6708882819304554132L, - -1077037295677468865L, - 3623478619549261514L, - -8551083693862102837L, - -6864926796047150583L, - -5583309839740166644L, - -2047952294766573645L, - -1296070923862863512L, - 3533321735634917235L, - -1137358684259757076L, - -8080333153054443456L, - -6770927466908143968L, - 1677314511582577698L, - -2630259631962080464L, - -1793645900673563419L, - 3600237620008462975L, - 2180027379579890660L, - -9043677058766520350L, - 3962397017521642626L, - 3977072778934081031L, - 9036155278583684186L, - 4719201700299004978L, - 195773270223425425L, - -3391740091956199499L, - -4297719063714682956L, - 2518769717461479967L, - 5163274893178164221L, - -7935837524015792569L, - 3725316512735597929L, - -6062355987398187561L, - 5072788521812186052L, - 4756745374124465344L, - -6691048140593722302L, - -4453427560142816958L, - -8908616043104241784L, - 4680671232907313257L, - -6131724261229112714L, - -9108450687466015537L, - 6365495657268753375L, - 6448165814018765014L, - 7071162731007451983L, - 6828906714271770482L, - -3559294295246311028L, - 124771238363526084L, - -3293309753712400861L, - 8896706306255876093L, - 3125408161217615213L, - -5861463414798312654L, - -9036260382640522754L, - -2941595857477708459L, - 6033142563060557598L, - 1099630200403990563L, - 7959429886791854178L, - 1535421567087429521L, - -3523681894692531197L, - -3906144409472427412L, - 6483996772781688720L, - 4132319255708563987L, - 8769726356542128993L, - 6738613111825331757L, - 1764580723100293334L, - 3299019025645495247L, - 2239605653730261397L, - -6200467116936956633L, - -6291344345384672622L, - 2565928296401167337L, - 5329865919971566807L, - -8575034623756510146L, - 6368322753797090715L, - -7493350249074734851L, - -1948050475401750220L, - -2542388860306602080L, - 3132812952361473979L, - 8662503282931471374L, - -7226118518078524751L, - 125513287940370920L, - -7105850358401444205L, - 2873891704788790693L, - 375644362554273808L, - 8779595029680158187L, - 6520575959918535178L, - 6481335563279395683L, - -3958324538875210597L, - 2650332007800900579L, - 67216421894692841L, - 2892388889322576563L, - 447031742152452522L, - 2214867384342611779L, - 3463418430384064877L, - -6736581145771083272L, - -3097757825887262572L, - -742646863032103227L, - -675900178715113798L, - -2232567950500061233L, - 1712025609374863027L, - -3405265351896222950L, - -7357424915587192954L, - 5899042778652661141L, - -7187291342974761805L, - 3480937052474976673L, - 997099418044934990L, - -2839517833272115276L, - 8199436817352462608L, - 9072737280134851879L, - 839795799971829718L, - 458252816075262707L, - 3252541827624060629L, - -5029727353658396637L, - -4967837872862091654L, - 2146776628928215216L, - 5403743629243841306L, - 3306799506878402965L, - 4468336141473957274L, - 7023113564987990226L, - 2871980174971968592L, - -6665846774723588486L, - -8521313230784523850L, - -2899150205599417383L, - 1992195265166010323L, - 3610880564010872990L, - -8962461672227066573L, - 8499793696703179099L, - -5174175353166984262L, - 3773412144378555582L, - -5377488598550438958L, - -227481030440141534L, - -3003034596327281460L, - -6010571883582226691L, - 5285640267764709652L, - -9094570939029139554L, - 3302183665375964446L, - 8185803481915750000L, - -7832879598569001202L, - 9185495476894972675L, - 9021601549322560342L, - -1033483127041468323L, - -9094719449194039442L, - -4246271926877732985L, - 5329679602094503622L, - -3123609535190446287L, - 4714766142804686442L, - 2489307805887894890L, - 2987790131896782326L, - -2963677483725852236L, - -8529934738168520503L, - -6356353435089583010L, - 3208586395891790363L, - -4407123126725047459L, - 8157441934654253916L, - -6109838368688820127L, - -4389983853453341623L, - 7652314184807664343L, - -4662723430367132038L, - 8667093623786488993L, - -3415543420133275181L, - 4904278838452314694L, - -4354230232880600982L, - 8861799057857753L, - 3552811093870745879L, - 8634119875383707854L, - -2732631755040740128L, - 6518885727185543342L, - 4341137614328678730L, - 6793266319858946131L, - 8047455342123276414L, - -866422210016420449L, - -2975253122827530056L, - -4030176003307022576L, - -4241696461887318612L, - -4753266504739240553L, - -7373316743164657129L, - 6048513984860600758L, - 1814258330875604106L, - 9109940689954894985L, - 1579558970146774347L, - 668478211668974619L, - 8409518560944185002L, - 7245729396754890299L, - -5114268398654367847L, - 2956616124692577442L, - 4461886846778383058L, - 959690196566065732L, - -7235204044940286838L, - 7981158344195854661L, - 1833698125790755138L, - 7752754976810456477L, - 5692118834710835902L, - -3793683786453929372L, - -5581772364636870855L, - -7470774962401733293L, - 8780664591724430174L, - -7663125741516067028L, - 5829471574991825780L, - 1182333455500273019L, - -1726270951016459467L, - -2746428321520070969L, - 6832833992125314751L, - -3990613509805030555L, - 2400486545587757625L, - -6598170744898189777L, - -1995198747364774857L, - -3645842663215618557L, - -6553956802949933979L, - 363585666263112429L, - -5656547416142849554L, - 131159332135711557L, - 4242991056913343886L, - -4674809189780845966L, - -1954374021725723642L, - 9000512499144627986L, - -4966087500556332423L, - -5368443575882114199L, - 7898708771797640436L, - 4954393344642394763L, - -228876611915096824L, - -3517612841169834059L, - -3181203061349135348L, - -7887316482076885972L, - -7491168484443218074L, - 1505841500971991620L, - -4819676400227780409L, - -5600600902750799703L, - 4287196606575127498L, - -6631038754487834066L, - -8562057237102997949L, - -3310437032247565299L, - 5856634576804593925L, - -1659423729330836678L, - -2785469434848827216L, - -9178954688981005208L, - 8284532255782100018L, - 3932114027983614574L, - -8735736194352900940L, - -5947824514040167701L, - 1555054962173652536L, - -1028318040091115332L, - 4142937213480146786L, - -2819444980269809917L, - -2903074845803234197L, - 3718049583878739327L, - -5493173480792612991L, - -4746130552040956231L, - 6244568873371787043L, - -2997679871934966832L, - 4047215048138865730L, - -6551789563963923059L, - 9086055720517286271L, - 8876034907713774156L, - 3680389259422527058L, - 6042866802807055050L, - -4886080504692397375L, - -7166197738900036643L, - -727151388570173900L, - 2438604478622089045L, - -8782162061024071951L, - 9077567357215978574L, - -2871872737471270227L, - 5320002012835335589L, - 5539849377632910446L, - 7555126502803598608L, - -8125224475094342490L, - 7417955058148509629L, - 4176877628224197597L, - 7598278370710374380L, - 2265897989342130546L, - -7061482734014550086L, - 1468468196263413305L, - 68682113048681479L, - 3762225435622216659L, - 4581877841476416419L, - 5115735211430226046L, - -397731465197117692L, - 3802999106815691779L, - 7574760794857420046L, - 4178197313545546553L, - 9065628242529864979L, - 542937206029962193L, - 1542373631583440917L, - 6903559734881147673L, - -2071796881281526902L, - 3779795498327194080L, - -2217268270456792594L, - -8059036377920200513L, - 5425988266816609684L, - 3561830549061618056L, - -7500972620191462258L, - -6776359714207180134L, - -5775998075012891173L, - -7755164007855727652L, - -4908348827451399810L, - -1162366502935483389L, - -3581470604892760162L, - -1434370488502028008L, - -1493293905909468959L, - -6762524287730181241L, - 1393564479464918401L, - 6717807842217858780L, - -2269779449488763938L, - 9119207083214966580L, - 4437289221718108033L, - 1991815488616873724L, - -1136008736729825773L, - 6919259317959590395L, - 5700567409540575886L, - -6511943523783520343L, - 8471138532439345892L, - -1261020616469785625L, - -871122257839774394L, - 5853266956701599170L, - -2605324811026081L, - 5645723143070327343L, - 6678903618140079830L, - -8243425527465830189L, - -7366977412613262267L, - 5554112623362949635L, - 8508696414094887570L, - 4526724121376344377L, - -3066464409160921518L, - 6423971479710566480L, - -1301150937530073813L, - 7047171805158365362L, - 6607488204808324896L, - 2550589198730302889L, - -1508652597994003459L, - -8797285250854566260L, - 4531577529333440300L, - 7171511780196023810L, - -8696995432677729109L, - -1038277725665095082L, - -4030021971399704454L, - -7142316504058264789L, - -8690342808784496917L, - -3538025267466743323L, - 3030344740150338756L, - -5434476681454308336L, - 4747881963413479619L, - 6649081146297801785L, - -1340297105335493395L, - -2345199575979290182L, - -5142497021023029281L, - 6590959395881104212L, - -669027690510749039L, - 4713909714515252237L, - 6334133652957330690L, - -4130611448171970254L, - -8777249173946876665L, - -3777422122544011758L, - -4139822748883105829L, - -85322879655457932L, - 8510613507788926362L, - 8480533752847008903L, - -1501849715563565256L, - 7144010316023561074L, - 7071721153639906878L, - -2413842258996393407L, - 3829076351340781609L, - 3904259427140354464L, - -2423161203681766273L, - -9222948412120414441L, - 2232806743868046887L, - 3459293971647694135L, - -4958044470517187570L, - 2702008978364322255L, - -5230685167113972622L, - -4777581725252095139L, - -178566492057125337L, - 5473668624447677467L, - -6025569476816496835L, - -1758476046405271590L, - 4318010125119483290L, - -5001898604592523465L, - 4496672693040208250L, - -6249539806063036132L, - -7752211883834007080L, - 5401928633460905475L, - -7924780124408034823L, - -5852842870036885474L, - -1507586788733048669L, - 8723145826212343490L, - 6322146995759068109L, - 7033327335320195047L, - 2731703606190537636L, - -5700197206770306283L, - -7681929128588407075L, - 4915318349456884393L, - -4365674444257230772L, - -618412543643891621L, - 5389658231644689771L, - -3464092788986188235L, - -1050158483149088836L, - 2986789282075383014L, - -7095920626607872836L, - 5041839261426701960L, - -9180003565648806832L, - -4136797423318912582L, - -815263725971673785L, - 7751482036034122791L, - -6582902412740766080L, - 4948480397753687589L, - 8076288905210502302L, - -9107950489265491053L, - -6184418323857721083L, - -8394291702992930332L, - -3765480365347368667L, - 9161366530222497706L, - -2767769147585489819L, - 8629853602447578989L, - 4143140731787551070L, - -6709802780961091740L, - -905525597452535126L, - 59611890502504912L, - 887996528204235726L, - -6522589813044041015L, - -717562431083190695L, - 4413597631385084460L, - 685793075458769616L, - 6534412965158226614L, - -7466805892367058580L, - -1643339784427405237L, - 8108897583594557150L, - -3012505670609614813L, - -2102992646348794512L, - 7496589075754797803L, - 7374879453359816181L, - -4473020896511090065L, - -2144052467882725474L, - 8932411294479920804L, - 1662104279385187462L, - 505577020704587182L, - 8970226030106571298L, - 4740935558188763942L, - -7479171385872798231L, - 7795864469149986219L, - 1988890416069916870L, - 5328957726704894445L, - 6393309991805794816L, - -8023969082870037181L, - -3201662046137010635L, - 7364167842238108568L, - -1133670122146177765L, - -3700583274673702753L, - 5152863800535605047L, - 4340628140712624150L, - 5588611203430726905L, - 2682781254448818030L, - -4334335781100941681L, - 2486482109045101170L, - -222120907104518499L, - 5461720682682027710L, - 8953356406381104317L, - 4813649794280024185L, - -8815822744547391388L, - -119150930688834339L, - 5696219244854669615L, - 8826694157719678034L, - -1678317963810155461L, - 2312220003237053610L, - -3288132327244573070L, - -6655294980817812847L, - -3093613585240964494L, - -1504599840801857900L, - -6463236998312950925L, - 5810208611405255502L, - -6761690440397609367L, - 451950190532227640L, - -5815456944452977190L, - -764130306143846512L, - 6419889081579466867L, - 4398197193823554358L, - 1464903517901841306L, - -1506288216502917578L, - 8699886991841245818L, - -3380656767633421271L, - 7278933867517081603L, - 3846023845717926438L, - 3407601931308300031L, - 1905732166195179585L, - -108117922380454789L, - -7519861222866947951L, - -4972130809215364346L, - -3021088137554827679L, - 8043600973137368044L, - 1434512585622151100L, - 1016884439578050772L, - -8647546074167685968L, - -8506558926671468128L, - 3841531502952176241L, - 4079049958054926435L, - -5539805586862437496L, - -7883676797140300306L, - 140190142986856503L, - -2694098382777014524L, - 3353255930521897564L, - 2673408461261660763L, - 3333109393952734968L, - 4825771068490982684L, - -1033017699452578891L, - -6425096031606191368L, - -3656030991400647770L, - -8647425424751627856L, - 3478736455049888956L, - 16599786738656663L, - 3377618271754536312L, - -7335129354324713170L, - 7006821265423054973L, - -6604032179699952888L, - 1631574662141238563L, - -6071005127816416359L, - -160948602692816917L, - 2439292442953103260L, - -7784485611988136914L, - 6406517206208162673L, - -3111851768592482815L, - 614615425925214040L, - -3556195010057046934L, - -8360577559236335104L, - -739612675357837554L, - 7772269085929933056L, - 301334074305006580L, - -3173646397989105785L, - -1841824288198551420L, - 1197412702727156776L, - 1316932784236645744L, - -8257483426031914296L, - -8846153844918116222L, - -270342118487428514L, - 773674155630100861L, - 6037581810683864126L, - -5245384017768292829L, - -6666883988353617786L, - 3478725688838981124L, - 5546782277057101197L, - 1942226182099172621L, - 9102708557688253903L, - 9057469348188803174L, - -4031312569229337466L, - -9072824545184945687L, - -3855790695273650364L, - -653872491134432764L, - -4080206884907012270L, - 3311573742599462083L, - -269764702825894936L, - -2766987632263151155L, - 6602535166262597916L, - 8827004592088991732L, - 1592583601190212294L, - -3667633871893247038L, - 3486449146725138397L, - 4359563813403699388L, - -4906066947120349290L, - -4330401382584040114L, - 4803580003918030391L, - -235574200222954516L, - -1394367949090492983L, - 4737542241672587937L, - -8856986665935885808L, - 1817303441870832271L, - -7240430001371174281L, - 3145103301223918932L, - 3477270089202844825L, - -4891077676842527034L, - -6459627619991208890L, - 41856325087285886L, - -1382249026510602312L, - -2521070087258742337L, - -2328070419092090664L, - -5388262052233273295L, - -5999142598302515399L, - 5176296022819478017L, - -8067233187432429974L, - 8892405394182984962L, - 6981068794359751546L, - -8944306852219597850L, - -3031777418502459563L, - 2323104536537852233L, - 9124712187601380882L, - 9137253645240139706L, - -8322892360260055499L, - 8407207834684403871L, - 7071881337439672371L, - 666653966378152392L, - 8872525458728668509L, - -647279373040971223L, - -4461978934957838597L, - -8547295400497453835L, - -8365906280976763859L, - 6814338820251845756L, - -8627557778552684742L, - 1758840533399088383L, - -6750756896288158784L, - 6395311215695067196L, - 392880119943578248L, - -2323700597403900754L, - -6462812207087401690L, - -7551080163645560286L, - -9100215524786223062L, - 2524911097994505678L, - -2413500551656055296L, - -3127527627858617051L, - 28303212483427471L, - -6013779137277216469L, - 2384861921525290083L, - 8909147637811545615L, - 5899702029055461370L, - -9169591182444006478L, - -8983057629681813417L, - -8861230054592033877L, - 8410267594044953503L, - -6655030751206229874L, - -6267989963116339301L, - 31106559957685675L, - 6344345657589688690L, - 8238818461566157187L, - 1502493109774801856L, - 3469110631126639783L, - 2128732756904122570L, - -6695477927845519719L, - 2528367395277931442L, - -329099838923643362L, - -7212791470765971061L, - -3974900257611008409L, - -6102716001138106504L, - 5975084928006556639L, - -2369197195204065449L, - 4487412260085465950L, - 1389218775050647169L, - -210563038269997706L, - -922257600076658999L, - -1130043160249584113L, - -6984222506141862497L, - -2916447389269713954L, - 4788071442219355775L, - -6019318505971293886L, - -6494546725482896662L, - -4363700123795407864L, - -413176181805813162L, - -318122404650466995L, - -1599593833241308652L, - 2190631003347506794L, - -4995495324074558376L, - 4218530180585703693L, - 6649230517887455428L, - -2433122371099559642L, - -2330882739734692624L, - 8573791066461702522L, - 6970674048709593485L, - 4649249821199623523L, - 7311119499624527481L, - 4680575275115317809L, - -5342935153571170373L, - -3116361043570347782L, - 7648138161603070701L, - -7868309300294741850L, - 2168590009590153900L, - 1490446147749965016L, - -1283008494190853295L, - -3544718913503298823L, - -6534742186538530460L, - 8888468655599547353L, - 2087090769425642258L, - 7827670472827763897L, - 5012267323158846243L, - -7741892984083231808L, - -3464875091939295355L, - 6758409038153561859L, - 7975975224774285641L, - -1784622809729929558L, - -2393574261519991129L, - -6610200673241373487L, - 7928053024182934824L, - -5277949614542058690L, - -7247922641677687748L, - 2028835673665475733L, - -1777986108022598102L, - -3172999022236468759L, - -6985445521140497368L, - -5695545706582407660L, - -4309483684393591256L, - -3401005720978902388L, - 1936529279105293703L, - -8305374440470863587L, - 16315157402312675L, - 8569329186502607478L, - 3622231363337094235L, - 3976043631923911750L, - 2180152175451630095L, - 6056371270826025517L, - 8139874952265577458L, - -6194153431530741778L, - -8577895877125457083L, - -790303016491014290L, - 1748735841046690659L, - -4993780459372161153L, - 5287205275463538041L, - -6049243002864424978L, - 6094628311576432102L, - 1723598070277281371L, - -2030013138372962335L, - 581254472737031976L, - 2883452134968639016L, - 7463603388570246862L, - 8269801870818255538L, - -2721070413905263091L, - 2457346831596438200L, - -8372860384678057653L, - -3210661626851492038L, - -2431103856629925112L, - 5898720385544051772L, - -3594404508869529256L, - 7736856796149395645L, - 4344265719410640477L, - -1183171608899090204L, - -2897986809520726521L, - 8305011769957443997L, - 4795229490900606846L, - -4075891264094240154L, - -9041912526913309251L, - 4789314080457888127L, - -7212841446169150525L, - 7614738331996330350L, - -2806024093029511670L, - 7475540037729743195L, - -208315385211774637L, - -1296899054609750506L, - 2821295913762275529L, - -8879859100383139039L, - -1026712876851747915L, - -8740379160227472449L, - 292511471974483828L, - -6882168959749241763L, - -1890145082814895769L, - -4562439963586418047L, - -4665008591354792917L, - -390136948977793829L, - 2489571518656765596L, - -4606174591656425576L, - 3915092809925941183L, - 9047840161614493431L, - -3633022588647399004L, - 6942969346669131736L, - -6694490826379010151L, - 1324301462784912541L, - -131359952912781984L, - 7699402503208720283L, - 5622479144398033413L, - 6967949859886140765L, - -4032338302965368957L, - -5963416332716588452L, - -3560763554691360091L, - 1005099059372059445L, - -3613443378421770201L, - 8186020547591708957L, - -4239294927646312066L, - 8486099747374488535L, - -8232895327339487639L, - -326238615306018799L, - 3757565981936253922L, - 6778212967891221904L, - 3207873024341334560L, - -7523175474658440577L, - -2278786475151426330L, - 8466836425666023990L, - -4582382447378461393L, - -6578561293342792192L, - -5704990689206920025L, - -2389743517442092247L, - -4253115007157692595L, - -8929813271704719513L, - 5099815622657901533L, - -1568292864717899125L, - -8985414394814021973L, - -2456273479716732497L, - 6294081109509751388L, - 3028102295678003049L, - 3539887196501896592L, - -1575691248319511603L, - 8966746464734142359L, - -6995340021363899582L, - -7800639148789851713L, - -8224260699176813192L, - -1938885039339650999L, - -6014303778691459857L, - 6353855006008545499L, - 682899654558677209L, - -227004043734081415L, - 4175445164667592327L, - -5892774236575987682L, - -1054851063871573686L, - 7378945432015543779L, - -9025847508399685521L, - 8507123498478659641L, - 2634415008322296937L, - 8499997933084393618L, - -2343091536239164797L, - 4943477958300830784L, - -5716138953695402001L, - 3654955422185200330L, - -3855175918674625767L, - 2942012910816921425L, - 2135649495450577190L, - 2489749270232932598L, - 3075573886722866022L, - 4741621495679187373L, - -2533070995420675111L, - 8016604412923285952L, - 3655782710664522385L, - -331575483966243030L, - 5563239881147789110L, - -3536395547713373675L, - 7913843468604629821L, - 5809470005231530425L, - -4975803751638349405L, - 4232625781800052755L, - 6732116987820363984L, - 8254350875123440214L, - 8678768551976889459L, - -7648934972481089708L, - 3723349959659703109L, - 6247511200357726796L, - 8031315762976704315L, - 1080967314182171216L, - 8561519680933409213L, - -4881637187705091353L, - -1748916130722404954L, - -427313373952636003L, - -3301131413273237404L, - -1569066768226212095L, - 8869766464584553885L, - -1961352451311113660L, - 266916750915890668L, - -6043655819212470095L, - 6958639066650934551L, - -7491396823220354282L, - -5706244121092248742L, - 2058565949849149623L, - 3917621928532856993L, - -5285914392340260969L, - -168243632194730904L, - 6675032706416988527L, - -1840378443456062350L, - -7806824272957817769L, - 112697577821879088L, - -4000943011066585594L, - 2818144475816625033L, - -4440191780652473075L, - 5290425627535986178L, - 3439261124616388302L, - -8796398171847802394L, - 2206978116305603858L, - 8337592206550774275L, - 4830967377052828283L, - -3675693473899758315L, - -3108840240467865078L, - -9161001698053177695L, - -2297481807921754784L, - 6805568340065774603L, - -3391258244299519321L, - -749159983993382844L, - 7062232236008961533L, - 8333689744281941417L, - 2017452506567785764L, - -8052757095945795921L, - -8679429010410768062L, - -1669769454675143183L, - 1021385511452112192L, - 2735516449063469298L, - -8689901914251408811L, - -2768144086776923110L, - -2202724657096524491L, - 2163604710661256429L, - 440602864681103213L, - 5959058277963677044L, - -1962091009504664018L, - 7850741655764818791L, - 5642260926720676901L, - 5408898583245429104L, - 7038508131990238779L, - 3607846536923261161L, - -845982521020496047L, - -2264177099345700631L, - 20359578843289632L, - 525387587427138539L, - 7263487202515015380L, - -6022234835374448888L, - 8771216931413507676L, - 971990022205374619L, - 7021724132924988656L, - 7039083302981701109L, - 4204637396958585348L, - 4188090497012985750L, - 4376437258965105347L, - 739302444316090012L, - -6525785024015383256L, - -5902189526714689919L, - -2086878366253206692L, - -4180968549067503810L, - 520335013266400476L, - 2183825622398646326L, - -5564778184706962647L, - 8650796499367868629L, - 6133888236137780152L, - 3302115923459930139L, - -5937793818041183192L, - 6136033530618946018L, - -7445428676723525682L, - 5094265850028691255L, - -7682752822893337463L, - 2360556001507188553L, - 4691951638183144722L, - -3830875212384544737L, - 1394869612670592029L, - 6721262565314161917L, - -4730012123689790930L, - 6010638756354340578L, - 4031121074915162261L, - -8189520056149158263L, - 5699902859355185981L, - 4409202837690861395L, - -4004308357657832082L, - 324207669529782050L, - 4535231947997767569L, - -5065771485887356402L, - -6148808728279097894L, - -8715608844307329735L, - 5490745425133075827L, - -367120062639329977L, - -2362408583935145326L, - 4249838900346469450L, - 3354190632527652547L, - 8650024540421064319L, - 1390121173325989151L, - 4407722572355267530L, - 1305681461138455335L, - 6099199904041118254L, - -8896625676033180325L, - 839449618742345953L, - 2108603209434414606L, - -6476270516642075823L, - -5906022157324316338L, - 1786301043676368787L, - -734452738262121042L, - 9129473457452515473L, - -4270195884135199090L, - 2788589943226781334L, - 854782643768940534L, - -6834471408050497483L, - 939538118216915189L, - -752821676934059887L, - -3925004345170320451L, - -8932717110665275243L, - -7095359027251951606L, - 7643915390524006789L, - -1927702468531393748L, - -7842897924029333727L, - -2005262014091460598L, - -1463327401577112707L, - -1828846898463724235L, - 3421730855491731072L, - -2572236860591883027L, - -7674305242810151190L, - -2921293091126082953L, - -2112272959722776468L, - 5994003596842057813L, - -1403058426817118276L, - 8847371890841156208L, - -1502366106598365249L, - -7223092882480940906L, - -6863117362364849357L, - -6486108986580560522L, - 5841273524403391013L, - -3945405895274884805L, - -8374909777151107129L, - 53304606899741030L, - 4615695750455104916L, - -7114565447402461330L, - -4643391974067777176L, - -6418268910872627783L, - -6758153388660633319L, - 3883028944583062885L, - -8717746570766619134L, - -2916775336586188872L, - -8074909175856917009L, - 3525909159494548665L, - -6434174792604831222L, - -7504160568097417051L, - 2001874122000013346L, - 7613526286976804831L, - 2464361623791150786L, - -2129233914182690890L, - 3209269703778816910L, - -8010470561318389930L, - -6082567480910205891L, - 2027383934435049120L, - 1676758519641328373L, - -8606433480037293753L, - -566732216614183074L, - -7052986422070927806L, - 6759547283385841440L, - -6753685466722762948L, - -5378389309155242913L, - -6627920366497701138L, - 6374316983929412845L, - -2482225971676290230L, - -4599659905021815233L, - -5751984843591190616L, - 4511247687213585367L, - -2476604560440409237L, - -114383761088915611L, - 6450270090553874467L, - -5846154312963348311L, - -8623677702310698753L, - 2393721797395064071L, - -1818986917546634465L, - 4707876179516363283L, - 4194493322864848953L, - -5862485881220479014L, - -7779495775631012707L, - 1429810574540763592L, - 6243218102267301238L, - 3112138729863740057L, - -7917371226803982155L, - -3846717136498455001L, - 7941035918354784272L, - 6054418261287151348L, - 2241054973421403682L, - 2108883531438643423L, - -5118957553064582950L, - 6840064986465667257L, - 1701114564579911641L, - 7866363409355715940L, - -7811750917271050315L, - 4258900268014843560L, - 2910381907881532246L, - -7407853986731113039L, - -1164923521782235469L, - 5071804620493814073L, - -5221820283650092409L, - -2085943650488071863L, - -4691931711041122390L, - 5141081400574039177L, - 4412440312825017190L, - 865265935918874733L, - -3162395727240029817L, - 2583523221463203765L, - -2230477299980342161L, - 1259435039139370849L, - 1365261303243408423L, - 123583301618412419L, - -3355292811340436088L, - -1727563074004288880L, - -8133802905721685614L, - -6552132843349831539L, - -1887405913282768589L, - 579752349959797974L, - -30747658301300128L, - -927889569251598514L, - -598220531698559825L, - 2933084143972969973L, - 1881216270838286368L, - -8591542187284077544L, - -2746195460013203014L, - -4115580643333612767L, - -2101698311751878965L, - 5245788963589320347L, - 4270169879132043112L, - -3833918223343506508L, - 942125237032353686L, - -6956461266653105716L, - 7913560303134573539L, - 8866560449264109272L, - 1772637526204651639L, - 6195153795464161383L, - 8993984678406525057L, - -4726061955654809508L, - 3735265735496936434L, - -6130568352441921952L, - 914728955300562981L, - -4063651775288818415L, - 7163723758837672393L, - 6047067511151254132L, - -85970498549649175L, - -9052941052352548153L, - 4240460500266637523L, - 5163784737021140449L, - -4716331032104787044L, - 5489681070460969049L, - -5530595986986981098L, - -5278261126239207272L, - -7077173381332846300L, - -7391343501975496029L, - 7813143400706294876L, - -829387125962495297L, - 4670865291775900382L, - 9020186365194420955L, - 6433988241346982419L, - 5456431567263680486L, - 577121399356211412L, - 4315536067351582084L, - -2651573533423085833L, - 7729294536223119956L, - 823406537236537172L, - -3197784427651817583L, - 3073787778728381013L, - -6145117092298484037L, - 825473167547740369L, - -6384124143193023811L, - 6743275140960345819L, - -6607284289920060697L, - 6113681357284605143L, - 7689553101083010355L, - 7733899730013301027L, - 2492677562497092915L, - 4728492123871940113L, - 6678104742805246060L, - 5109599002723184885L, - 1552728313401432217L, - 4260747280707230837L, - -593097661878040944L, - -5924961133842904285L, - 4723826630465061674L, - 268913169937480109L, - 2542402711842995289L, - -1051287017878596624L, - -444276555201322762L, - 7942493575456109374L, - 3061527869577259411L, - 4193974852415330113L, - -1301232869890041839L, - 7435225101451773213L, - -9001651199021564702L, - 6863640439001667225L, - 5554839952330233864L, - 1018125067733426387L, - 5106471895041805751L, - 6755291848201476506L, - 204883989932056912L, - -2918800393497291312L, - -361123969592716017L, - -3248350955607675877L, - -3093925735525511829L, - 3287300458522620431L, - 200614927215937352L, - -3637256374159515512L, - -7088130147825572228L, - -1454877327154711975L, - 200290346546176890L, - -5273070491678100412L, - 9126524747081374017L, - -2469359255503465276L, - -5451210609015247756L, - 1345843315473598819L, - 5658367014892979201L, - -418967882289891730L, - -8563171322679387325L, - 3076280980125057136L, - 7452927116456175377L, - 7779645020063005680L, - -1134607767941445560L, - -683371285258284330L, - 3622514687262401912L, - 2057491561658004489L, - 1274581986030567362L, - -7605424030712005369L, - -1904495568695037810L, - 7235082449551676221L, - 7691343848640211912L, - -2574437254990241198L, - 7672749762009557292L, + -5752995443491633966L, + 6697150685477982789L, + -8292226578951944721L, + 8469039529317823308L, + -2857784829002285502L, + 2708946207299695398L, + -475923488709545204L, + -6776550864174025842L, + 5997435870397431563L, + -1413893264211963655L, + -2557925560926552642L, + -7786449276288726217L, + 2663862252392472519L, + 8293182564608143680L, + -4991485761665135445L, + -4260167493401566131L, + 8397271794406387881L, + 2767712210800417827L, + 5643454605919104416L, + -2096221407055692639L, + 4164971193688274917L, + 2012618980459220155L, + 4502510481524221164L, + -9150753967845211809L, + 2109736127223229935L, + 1705328223411648698L, + -540252590844239442L, + -8448139437911662946L, + -9172921965178401452L, + -5901063484397960162L, + 8990179058523403886L, + 3191587668216080419L, + -1505157133869540426L, + 4826297514018361126L, + -506720607717191353L, + 546407899098652120L, + 3565976246504851323L, + -7513490578875853277L, + 5136885717551856091L, + -1235315857278978092L, + -5210210379482210601L, + -2670168613513456171L, + -4576802255731115784L, + -5498085225412524972L, + 5454622260446372900L, + -3491156961084957616L, + -2040190370914817596L, + 8748880751719855958L, + -6066272418698883734L, + -8123169723410338681L, + -3402048629088769519L, + -9050773182933316170L, + 9109683037362136984L, + 8292736658273756483L, + 5864675646204731276L, + -3410199798914438762L, + 6375136202365522231L, + 6084483678447018976L, + 4341319149581895135L, + -2617192247437531424L, + -7803896693111046938L, + 6612714826762703589L, + -2604165952446921239L, + 3956924213727943389L, + 1828772354490899965L, + 4565769277738155679L, + -2552163583152823111L, + -7282771451698115771L, + 1541537288639310430L, + -1260053141177242892L, + 4470999817094301913L, + -3084949271203311242L, + -7546393470851473997L, + -8966028816522567997L, + 1051341974704645729L, + 5538793834884616099L, + -5628104741732354066L, + -8951130142602632322L, + 2719505240413599325L, + -1008778746385874696L, + 2203198775211410780L, + -7143533605672789717L, + -453883261782705024L, + 319057938868287727L, + -496754595070837553L, + 6805613814053675206L, + 6132340656385066787L, + -8860356581867026581L, + 5016198123629145689L, + -1596369660096962742L, + 2766685770642558330L, + -6266516138812319453L, + 1921783429840399290L, + -5251293476201135485L, + 7108628593359030710L, + 8093943502713971156L, + 3074597418887950513L, + 8333496602590533977L, + -708020943442059956L, + 3102625642886133984L, + -6499370722788023494L, + -6917377031919774998L, + 6901729616079135501L, + 4521740373890802536L, + 2717665495303183111L, + -856278075863271097L, + -2502885534841887818L, + 2357338131581904382L, + -2522296722172564384L, + 5979169122227632125L, + -1990576311176786902L, + -316116701196334114L, + -6739126101832001255L, + -330238767430913485L, + -2397646708417573337L, + -5746367286277299531L, + 3388130732766130858L, + -7310644851569314744L, + -4824388967193941498L, + -648780185892102954L, + -8712468613035181241L, + 2711516130478712762L, + 2754691483449550770L, + -2790972617414146667L, + 8537743091160071936L, + -866831535856147830L, + 3962787639412434933L, + 5751063116956730026L, + -6343210590541299672L, + -9027452407994212939L, + 7748080448177464210L, + -8875675911298011676L, + -3943374007835482499L, + 7098683995859102865L, + -2275458998280053925L, + -4628453854860491915L, + -1529511772279148360L, + -2871057272253482780L, + -334841257423340530L, + -7314747545247602053L, + -201172568470226645L, + -6965846975881685612L, + 2309595871631956781L, + 8951003723927622968L, + 3001873710915957640L, + 2012064170299142173L, + 7095981982072554477L, + 2920562163667542830L, + -4511110467250954239L, + -7166611815479236612L, + -2211021712129656794L, + 1338540767674038758L, + 3487756347488888084L, + -4937557446668954437L, + 2620388879014721175L, + 7208356694606927210L, + -4513132828283918504L, + 6317549580437550543L, + 2401779216570746255L, + -5457469669547078677L, + 7471661866970627352L, + 7386623443212346251L, + 6923730215630122759L, + -2325097522428671189L, + 8000364301902289246L, + 4925551359859147160L, + -5595982422094382548L, + 7228349132916965209L, + -4703354695115981511L, + -2115306052026418681L, + 9090854014723212293L, + -6068838827925313383L, + -6558621713962157376L, + 1473800012311082935L, + 2525181364542947966L, + -6021645913223485972L, + -8318988851482275654L, + 373007065698472266L, + 795167131148895585L, + -532571991837954792L, + 7238159482918777429L, + -7525111696825330223L, + 6189481850281476163L, + -512400154882781230L, + 2185412829792057998L, + 8303821120875906039L, + -3658266464759815456L, + 5534191248734418007L, + 6101574779391286487L, + 8145964650042952627L, + 5391320846882423376L, + 956217201277458121L, + 2237749983378005618L, + -6656683242892884554L, + -3394474129803761342L, + 8406074839295737353L, + 8623233445127821330L, + 6897419204888614556L, + -3873285223086133426L, + -4449195818654013260L, + -4380415985865610994L, + 1843484917925416568L, + -3683421128553731612L, + -6759630266574317021L, + 7963823663074411611L, + -9073210183338934836L, + -4207841706309087395L, + -6317104811444343048L, + 1176967159244991718L, + -8150985710604331729L, + 2463641502615436945L, + -4649906465921856966L, + 4753784510776661068L, + 1401826846930455507L, + -7215160016399204667L, + 4222527227332022097L, + 4242038843438232290L, + -6229200518763707451L, + -7634229331990944723L, + -5906084857878661851L, + -4471729319982253726L, + -7488818713861180407L, + 8958437567708072797L, + -4361717585953265517L, + -3589345870120547258L, + -5656002784155139233L, + -7405858066073224924L, + 7261298787749646565L, + -2118323539609274283L, + 8440646816505080462L, + 4907492019172743241L, + 2971795108974926972L, + -1111694536287943778L, + 1092562971031582110L, + 7435780765000923721L, + 5815238393374335255L, + 3728879363004790298L, + 7950374680552679377L, + -1559646550697408809L, + -1009638403217698280L, + 5477007325533850929L, + 2802315771636654550L, + 1359831828875761363L, + -6244291732477211457L, + 9138108823363225790L, + -5700703633273694371L, + -5189931767235375959L, + -5917217031437644153L, + 6559980057173897885L, + 7585954365066361941L, + 1833254434142522137L, + 2622798612834078243L, + 2935894269140572959L, + 3342180495858759098L, + 7763655187214368195L, + 608976619205971467L, + -4493083204513432310L, + 5655458152670549588L, + -995372262620475933L, + 6725108152764242753L, + -4152678539161864839L, + 4879330012023732227L, + 299691067249437340L, + 8253082866296742941L, + -1349088245542024700L, + -930670635091392036L, + -6305033172145799503L, + 767676528758696723L, + 7848289152882068204L, + -5335123725692922309L, + 7618587959592606045L, + 1310623412826253949L, + 6105911509337366946L, + -5132873445536420119L, + -5066374717991788365L, + -4196018003514359930L, + 4602399218983903018L, + 6996237050722228275L, + 4750432263399753517L, + -6552768219041772261L, + -8886514643984898377L, + 7353718498017818617L, + 3420752363982256164L, + -3106921624226184176L, + 7755185569018499850L, + 138048424823142520L, + 4574855394856311409L, + -797116754680671576L, + -6319525882248058891L, + -7211292892013797268L, + -5969262208310571743L, + -2242517284471541983L, + -2134523085752830969L, + 5239925547316736378L, + 2211989170649079345L, + 3951874086467810189L, + 1541713943974254342L, + -5392854420512731723L, + 3564316510315168871L, + 2901564687206922350L, + 1540984989266277585L, + -5588692335575710649L, + -7656900483971665708L, + -1269975572006533380L, + -8586683894725424637L, + -667220377486025270L, + -6992322247305413343L, + 1020432414035508475L, + -762737570699341127L, + -4996438874277990597L, + 2399099134154679381L, + -7294753205977958107L, + -4330814694281211877L, + -3424505945178467498L, + -3908232167211290102L, + -1715708172189155463L, + -1541677764411125216L, + 1443437733037296364L, + -5699613322350318170L, + 28422381221154018L, + -8448942739014323861L, + 94089349704640679L, + 3121324325667558058L, + -2027215282474423693L, + -9090860166446867101L, + -5570813680167514715L, + -4433017494388855624L, + 7780214454833321289L, + 2818118075900140158L, + 7909566890394565636L, + 3281719552865083509L, + 2293428426098439431L, + 4831877444478608421L, + -8036810704178721498L, + -6696440698423871679L, + 424663572619708233L, + 2210379950234460182L, + 4488772831440475400L, + -6238973969104209915L, + -2892035378057749818L, + 1190083349888328687L, + 1900956434625552346L, + 5686029047839893831L, + -8652319297499303518L, + 5660206937964935444L, + -5693798368774435246L, + 326881025455212277L, + -8376143443592681499L, + -924714482174160655L, + 2731102432407909647L, + 5974710608961653241L, + 6662943015421622990L, + 2629145426514230124L, + 7653779470428211936L, + 8231699528634814943L, + -7880485152483421857L, + -8715291256937697509L, + -2608260639142008146L, + -2891414416406033026L, + 1006672424561275863L, + -5345465745471823175L, + -3007098514343148833L, + -8853686550740270619L, + -8826799561287303533L, + 8800245871751669511L, + 565431636219131046L, + 6137897978460556916L, + 5482308004417669307L, + -3006854606371770142L, + -5550863738981833513L, + 6860154257076535929L, + -7830408716033920139L, + -6220766884162806429L, + -3254641290637732033L, + 4069104293139053208L, + 1298727460612851492L, + 5145793087755505159L, + 4012194405015900827L, + -2096633266369036577L, + -235600124490809513L, + 2256248865523312538L, + 1856550792634706370L, + -6338437638663913139L, + 605690123879344699L, + -5972006707479557169L, + 2788841617850067275L, + 3341756482258277517L, + -8730087995322499274L, + 5666761853789513177L, + 1427855942817620030L, + -2247084578644277545L, + 2632056116244532492L, + 8983184113458203674L, + 6222824259917067927L, + 832847538082989274L, + 7408336855734508382L, + 2463234904146980715L, + 7616355816816829131L, + 5437320614714817066L, + 2176649963064497163L, + 7847964877858458386L, + 3676215252045438118L, + 1457265625453915305L, + 421670244665897930L, + -537286355906412984L, + 845546777083974630L, + 6294586905906742451L, + -6979812383811440761L, + 4101166573373719960L, + 430647036995334093L, + 2563569094767382754L, + -2226117486192197040L, + 3989815455278220803L, + -5573460076032648378L, + -5149764105493446507L, + 8908023797302087394L, + 1579875413248797693L, + 6557085398158756277L, + -1860582499397819682L, + -3940264269551745098L, + -3760050418257691649L, + -2749137550200198091L, + 863749834414320446L, + -1701674908797410602L, + -3441531459858237116L, + 7781166611943523849L, + -8747694838109223765L, + -7940615954936651322L, + 1761800111692886098L, + -7563608795264216209L, + 2430120273101259962L, + 3034607409190630193L, + 7596606678605264709L, + -8815959038019965324L, + -8056592803858661736L, + -6054319005531061432L, + 7637990614259037480L, + 155762651336866309L, + -5295066003461610118L, + 2097996021613363354L, + -2649318637576910563L, + -4710689453059380010L, + 8675276565266944323L, + 4061820304631504890L, + -865251409507836874L, + -4305544705996842550L, + 8133733737104758782L, + -3599082219550900640L, + -1172444168425884022L, + 7002178848795582841L, + 8753574524527561837L, + -7959972011549631263L, + -664335750987460129L, + -7761182775497779250L, + -201978935828898840L, + 5748605939155571413L, + 432959146257511060L, + 8597688997048592708L, + 5979346454620003082L, + 6682666834922578474L, + 3635671342630844084L, + 8295581682942403968L, + -6056716329065906860L, + 4876232349596700627L, + 3282465211073936357L, + -6277210138874800012L, + 86063810903062668L, + -5131034425726984549L, + 7879994284944917570L, + 3805360137603820244L, + -4819745855255108901L, + 6005083603591253720L, + 1260872260703386533L, + 6208805585589862489L, + 4467145362283493250L, + 6925593199187107448L, + 2290814776012496288L, + 2202094536385319447L, + -1583289128964920170L, + 2414314858213839292L, + -417375850490384234L, + -6775757096712023859L, + 1531877516325565400L, + 5092160435195199211L, + -7779989257755281504L, + -2910324314591098862L, + 8497090690994716777L, + -7802963550632908400L, + -6411284901845568322L, + 9216337043421866495L, + 2437859992012674232L, + 6960237011186167617L, + 5100162418749277386L, + 6509562170805894274L, + 690433361758303077L, + 5936816351771558334L, + -3601277060469993805L, + -978457311807747406L, + -4420940034475608949L, + 3538644062391991755L, + 5164625733904685628L, + 192170982312183453L, + 5014044649793050646L, + 9147945450485230993L, + 121096778422978126L, + 7076446543359171313L, + 3849792111065500559L, + 7235530029899206334L, + -6832803917257794399L, + -7448095328943903784L, + 636249030288914450L, + -5837508951408640620L, + -5494182545899908814L, + 139946096999437232L, + -7949772735307966448L, + -6777152677072204821L, + -648210928302263569L, + 1484711477581900777L, + 1415763754612838143L, + -107058891244037140L, + 312958362296582989L, + 5071518533113132226L, + 6638935098145563092L, + -2867055004276813534L, + -4289503497262086936L, + 1497170552728782805L, + 4517675483628149735L, + 3748960245079903666L, + -3691286664879128054L, + -209359184536764749L, + 2491341916818449085L, + 5499205217633027745L, + -5512709448748519671L, + 4557913818063026938L, + -2112204135968966196L, + 3440403110217462895L, + -5867323792132309155L, + 5420869064478055006L, + 318512041709141078L, + 1057553941897233483L, + -6895197562631981270L, + -5782743651675563936L, + 2659771847560443960L, + 6592601119187496548L, + -517270229881128849L, + 2622604378506727519L, + -9170205866690625639L, + 4806630682514823179L, + -7776613972641981358L, + -1488298548028258830L, + -1715707210842296824L, + 3796221982870729299L, + -7882722580553373597L, + -1797548791879939131L, + 9223079908042491188L, + 7847548061281742781L, + 1041148225166463713L, + -2800037601895587534L, + -7832361151307182116L, + -6950576920927850414L, + -2404378656089204258L, + -7720362412660524651L, + -4901646243176144926L, + 6432612866296388591L, + 665821462715291984L, + 5024465184664377182L, + 1558901948449801231L, + 2224934457550741787L, + -1486153720652331467L, + 2152321067003602002L, + -1858128886354189097L, + 2873839996181438535L, + -243875524287970697L, + -1376873654537129986L, + 3287122656145633441L, + 3770833946582728674L, + -2764900700916121857L, + 2560091717993161785L, + 5504786539926877426L, + 673505854315501819L, + 1264431652537758499L, + -5043418235491208409L, + -6769065002135856586L, + 7666088207808456995L, + -2827685615289224220L, + -5429383711816435171L, + -3134385201210164932L, + 3020879270457681824L, + -1689344584352272080L, + -9040930749904066060L, + 1932280955101101310L, + -4992572509975070322L, + 7546307129163923078L, + 2939073542428222766L, + 3374974368464231869L, + 885759554366311L, + 6593789636519856798L, + -1624132412418983395L, + -6031359656290740003L, + 688983212618230553L, + 6369052776794949918L, + -1377714920269304294L, + -1057940749189840506L, + -1655685782041312329L, + -110552080942842283L, + 5250633774704933933L, + -7909648255758272745L, + 719735976337939580L, + 3645906512854567933L, + -1860978834085668115L, + -4349804709624489457L, + 7923661347327064185L, + 4244126846532735429L, + -3251399312816082643L, + -4937029742581158563L, + -86298941439722272L, + -8597913327563881758L, + 5039882027531808464L, + 8056647111062079524L, + -8976752115766926062L, + -1690394607348932339L, + 3378746565484573129L, + 8416003090844044193L, + -2717024430934601010L, + -5701892799453780386L, + 1533981283496523540L, + -7462371343115417598L, + 7010080256761797460L, + 4478373719647299143L, + 6305458678328463570L, + -5102763036459098393L, + -8778795989564198209L, + -2268889645684651974L, + -4555916510323499535L, + 9065546065927673888L, + 5852839483910534806L, + -3402482240912256878L, + 2023722994972298169L, + 5215407550830003324L, + 1071468158469513836L, + 4955237436537987038L, + -3083989516400027076L, + 6722953813435001988L, + -2387850610416371552L, + 809463730078568982L, + -5395203458608056891L, + -6137800097014878795L, + -3605527194936796968L, + -7589842792710116365L, + 8069067842420108257L, + -7454408306272078350L, + 2339188701288559996L, + 1008425726458324286L, + 6847676052807732318L, + 2271618337058209406L, + -8281033180921892670L, + 3604010165737741236L, + -8269928557793008073L, + -447391999287823556L, + 8028984830780334836L, + -3883350805508230356L, + 7482610679805814070L, + 6500112572029535883L, + 6119648543352512696L, + 6922212850686981745L, + 1734731947537567857L, + 4101619546129582628L, + 9155049639883886519L, + 5849304319215085011L, + -135976101808023055L, + 3329888204068201272L, + -4336188293967075047L, + 5788433959497374483L, + -1402363557578146821L, + 3588707324813677961L, + 6715232528053729851L, + 7169368150013526008L, + -8706746826857587245L, + -4819316543846777649L, + -8782313301067526525L, + -8916832875484128383L, + -2346600299358242263L, + 1904681875169970567L, + -6704056743702639344L, + 2270605299750783360L, + -3940808304480228961L, + -8321565943725548488L, + -3825742229541937514L, + -2349339074190735472L, + -2948486946206330984L, + -747906506207273746L, + 4280562720015859798L, + -4136257343808753176L, + 8445283324198191059L, + -8404850409602104913L, + -3264457032343850047L, + -8759790595969078254L, + -2542190711281684773L, + -8843544063303913454L, + -4003746482399952206L, + 3841695822551400168L, + -3588090911679720182L, + 4918585626351510199L, + 9222791837897484065L, + -5760984091213555378L, + 2491736142884395009L, + 9176699063949977552L, + -311336022868801049L, + 6098071943696363607L, + 3781539988474542156L, + -5991444272878304549L, + -7058079929087833240L, + 3692880174470651745L, + 8043184184871662514L, + -2260533056334755470L, + 7862870576355526775L, + -1273628657555198089L, + -7116245059732632210L, + -6206223953545513505L, + 8769478588548603347L, + -6809293819712164844L, + -7072037946451047577L, + 5145959967698376997L, + 3918549975422395928L, + -3688153306502628396L, + 8933640809529662946L, + 6586386948093068301L, + 4314174515802583045L, + 6042832017761248999L, + -2163096650317259801L, + -1301538385158714097L, + 9157628132063555931L, + 8447192224483369575L, + 1082300847283178879L, + -8765613093828266962L, + 6523561351628630699L, + 7878456944142132573L, + -5878800239136723413L, + -899016955838748566L, + -968680680108344572L, + 8149351788840205925L, + 7767149159758237380L, + -1002433668001324671L, + 861378480610089679L, + 5131370442347562734L, + 5891997968737511949L, + -1134130780427583438L, + -2721284507442384384L, + 3581758406053663578L, + 4711959109881063237L, + 3814833207703197149L, + -5498755072540800142L, + -434194050930099095L, + -1131324138179189444L, + 6335673834129040499L, + 3840591353873435091L, + 6691477876637098998L, + 5389042814799436488L, + 8492537662085986759L, + 9801065220990358L, + -8991404774454959964L, + -5967334022174632862L, + 8423499844379835696L, + -1121320485100692308L, + -1137347326607533713L, + 3579131621253541604L, + -949637496239973913L, + -845717236495377944L, + 2627652869211543871L, + -3584273871358543803L, + -1231456733798526473L, + 6404279318428525466L, + -1959366387574498651L, + 8659995475649499110L, + 5687743493891209750L, + 5734157541830063944L, + 3807145789061111632L, + -8728883033962465130L, + 1886310705344218044L, + -2869995344352648369L, + 8631433038774110827L, + -5196628823587587974L, + -7457206590006693637L, + -5287470411743602489L, + -4100864542827687276L, + -6925193246164904686L, + 684773938147799771L, + 4684480184200832071L, + 1138521418475557396L, + -1024452235617887100L, + 370178077665262107L, + -2580904250658458088L, + -4067270455265760110L, + 7883457924958258236L, + 2745236661071909096L, + -6638753008619557401L, + -1928563245103591922L, + -5391677730310963265L, + -3443398620200795730L, + -8921877650888014333L, + -2549654053467481876L, + -6634007310328959288L, + 6662969652277689957L, + 5704789109069509625L, + -1307333292330657763L, + 6533595699848914839L, + 2206229619406776067L, + -7059181012292774208L, + 8587013829275411963L, + -3759394797281060169L, + -8332558387862436192L, + 4058454963111191922L, + -2909318126609562718L, + 8309425769040304384L, + -3332518656544710523L, + -53840526904216763L, + -4392299612463469408L, + -6495163012164872108L, + 8283822043324591205L, + -3839429045227492113L, + -4554258591908844950L, + -8717791527048532273L, + -6680294812840082731L, + -1514076315369906827L, + 8342331288999106348L, + 4467472370913596089L, + -5258687569970231267L, + 6428083210523097473L, + 2293947403016663486L, + -5526361602248141114L, + -7270937093961275072L, + -7226206738482320242L, + -267988759137059367L, + 3757842653020528703L, + -654142607214292501L, + -3877320323095024097L, + -210352008325460011L, + -3777353653906366683L, + 4104559760354145145L, + 6351620637332827086L, + -3953047538968937343L, + 1977509989365985520L, + -6096612777648073834L, + 3655449697279862217L, + 6371929595416244955L, + -6719663260573101322L, + 8235058461435871026L, + 8223610568265677874L, + -636776168225445543L, + -5658531495972000806L, + -1315157075774308702L, + 3318184564168373738L, + -3870791042207323999L, + -5761074459524531162L, + -7589695080417675674L, + -118243652515378968L, + -5606050504941145854L, + -1682232575263053834L, + 2064607730151462051L, + 3860046528687723210L, + -6935238833286905572L, + -1526898475961616862L, + -7786760789279579722L, + 6367271805286224450L, + -4333115896551664911L, + -1229178972379399952L, + -5406430689127328314L, + -8536830855104540258L, + 4592858633504932985L, + -4661004590562426651L, + 1900079872513330236L, + 803518532278716272L, + -7227731911919645710L, + -1531800249475624901L, + -5068571120099635260L, + 6954901733800148115L, + -7075071323703859828L, + 1447978964456769515L, + 860006115119071319L, + -2067420548322589555L, + 4638996254844315967L, + 6983236581726963935L, + 6708882819304554132L, + -1077037295677468865L, + 3623478619549261514L, + -8551083693862102837L, + -6864926796047150583L, + -5583309839740166644L, + -2047952294766573645L, + -1296070923862863512L, + 3533321735634917235L, + -1137358684259757076L, + -8080333153054443456L, + -6770927466908143968L, + 1677314511582577698L, + -2630259631962080464L, + -1793645900673563419L, + 3600237620008462975L, + 2180027379579890660L, + -9043677058766520350L, + 3962397017521642626L, + 3977072778934081031L, + 9036155278583684186L, + 4719201700299004978L, + 195773270223425425L, + -3391740091956199499L, + -4297719063714682956L, + 2518769717461479967L, + 5163274893178164221L, + -7935837524015792569L, + 3725316512735597929L, + -6062355987398187561L, + 5072788521812186052L, + 4756745374124465344L, + -6691048140593722302L, + -4453427560142816958L, + -8908616043104241784L, + 4680671232907313257L, + -6131724261229112714L, + -9108450687466015537L, + 6365495657268753375L, + 6448165814018765014L, + 7071162731007451983L, + 6828906714271770482L, + -3559294295246311028L, + 124771238363526084L, + -3293309753712400861L, + 8896706306255876093L, + 3125408161217615213L, + -5861463414798312654L, + -9036260382640522754L, + -2941595857477708459L, + 6033142563060557598L, + 1099630200403990563L, + 7959429886791854178L, + 1535421567087429521L, + -3523681894692531197L, + -3906144409472427412L, + 6483996772781688720L, + 4132319255708563987L, + 8769726356542128993L, + 6738613111825331757L, + 1764580723100293334L, + 3299019025645495247L, + 2239605653730261397L, + -6200467116936956633L, + -6291344345384672622L, + 2565928296401167337L, + 5329865919971566807L, + -8575034623756510146L, + 6368322753797090715L, + -7493350249074734851L, + -1948050475401750220L, + -2542388860306602080L, + 3132812952361473979L, + 8662503282931471374L, + -7226118518078524751L, + 125513287940370920L, + -7105850358401444205L, + 2873891704788790693L, + 375644362554273808L, + 8779595029680158187L, + 6520575959918535178L, + 6481335563279395683L, + -3958324538875210597L, + 2650332007800900579L, + 67216421894692841L, + 2892388889322576563L, + 447031742152452522L, + 2214867384342611779L, + 3463418430384064877L, + -6736581145771083272L, + -3097757825887262572L, + -742646863032103227L, + -675900178715113798L, + -2232567950500061233L, + 1712025609374863027L, + -3405265351896222950L, + -7357424915587192954L, + 5899042778652661141L, + -7187291342974761805L, + 3480937052474976673L, + 997099418044934990L, + -2839517833272115276L, + 8199436817352462608L, + 9072737280134851879L, + 839795799971829718L, + 458252816075262707L, + 3252541827624060629L, + -5029727353658396637L, + -4967837872862091654L, + 2146776628928215216L, + 5403743629243841306L, + 3306799506878402965L, + 4468336141473957274L, + 7023113564987990226L, + 2871980174971968592L, + -6665846774723588486L, + -8521313230784523850L, + -2899150205599417383L, + 1992195265166010323L, + 3610880564010872990L, + -8962461672227066573L, + 8499793696703179099L, + -5174175353166984262L, + 3773412144378555582L, + -5377488598550438958L, + -227481030440141534L, + -3003034596327281460L, + -6010571883582226691L, + 5285640267764709652L, + -9094570939029139554L, + 3302183665375964446L, + 8185803481915750000L, + -7832879598569001202L, + 9185495476894972675L, + 9021601549322560342L, + -1033483127041468323L, + -9094719449194039442L, + -4246271926877732985L, + 5329679602094503622L, + -3123609535190446287L, + 4714766142804686442L, + 2489307805887894890L, + 2987790131896782326L, + -2963677483725852236L, + -8529934738168520503L, + -6356353435089583010L, + 3208586395891790363L, + -4407123126725047459L, + 8157441934654253916L, + -6109838368688820127L, + -4389983853453341623L, + 7652314184807664343L, + -4662723430367132038L, + 8667093623786488993L, + -3415543420133275181L, + 4904278838452314694L, + -4354230232880600982L, + 8861799057857753L, + 3552811093870745879L, + 8634119875383707854L, + -2732631755040740128L, + 6518885727185543342L, + 4341137614328678730L, + 6793266319858946131L, + 8047455342123276414L, + -866422210016420449L, + -2975253122827530056L, + -4030176003307022576L, + -4241696461887318612L, + -4753266504739240553L, + -7373316743164657129L, + 6048513984860600758L, + 1814258330875604106L, + 9109940689954894985L, + 1579558970146774347L, + 668478211668974619L, + 8409518560944185002L, + 7245729396754890299L, + -5114268398654367847L, + 2956616124692577442L, + 4461886846778383058L, + 959690196566065732L, + -7235204044940286838L, + 7981158344195854661L, + 1833698125790755138L, + 7752754976810456477L, + 5692118834710835902L, + -3793683786453929372L, + -5581772364636870855L, + -7470774962401733293L, + 8780664591724430174L, + -7663125741516067028L, + 5829471574991825780L, + 1182333455500273019L, + -1726270951016459467L, + -2746428321520070969L, + 6832833992125314751L, + -3990613509805030555L, + 2400486545587757625L, + -6598170744898189777L, + -1995198747364774857L, + -3645842663215618557L, + -6553956802949933979L, + 363585666263112429L, + -5656547416142849554L, + 131159332135711557L, + 4242991056913343886L, + -4674809189780845966L, + -1954374021725723642L, + 9000512499144627986L, + -4966087500556332423L, + -5368443575882114199L, + 7898708771797640436L, + 4954393344642394763L, + -228876611915096824L, + -3517612841169834059L, + -3181203061349135348L, + -7887316482076885972L, + -7491168484443218074L, + 1505841500971991620L, + -4819676400227780409L, + -5600600902750799703L, + 4287196606575127498L, + -6631038754487834066L, + -8562057237102997949L, + -3310437032247565299L, + 5856634576804593925L, + -1659423729330836678L, + -2785469434848827216L, + -9178954688981005208L, + 8284532255782100018L, + 3932114027983614574L, + -8735736194352900940L, + -5947824514040167701L, + 1555054962173652536L, + -1028318040091115332L, + 4142937213480146786L, + -2819444980269809917L, + -2903074845803234197L, + 3718049583878739327L, + -5493173480792612991L, + -4746130552040956231L, + 6244568873371787043L, + -2997679871934966832L, + 4047215048138865730L, + -6551789563963923059L, + 9086055720517286271L, + 8876034907713774156L, + 3680389259422527058L, + 6042866802807055050L, + -4886080504692397375L, + -7166197738900036643L, + -727151388570173900L, + 2438604478622089045L, + -8782162061024071951L, + 9077567357215978574L, + -2871872737471270227L, + 5320002012835335589L, + 5539849377632910446L, + 7555126502803598608L, + -8125224475094342490L, + 7417955058148509629L, + 4176877628224197597L, + 7598278370710374380L, + 2265897989342130546L, + -7061482734014550086L, + 1468468196263413305L, + 68682113048681479L, + 3762225435622216659L, + 4581877841476416419L, + 5115735211430226046L, + -397731465197117692L, + 3802999106815691779L, + 7574760794857420046L, + 4178197313545546553L, + 9065628242529864979L, + 542937206029962193L, + 1542373631583440917L, + 6903559734881147673L, + -2071796881281526902L, + 3779795498327194080L, + -2217268270456792594L, + -8059036377920200513L, + 5425988266816609684L, + 3561830549061618056L, + -7500972620191462258L, + -6776359714207180134L, + -5775998075012891173L, + -7755164007855727652L, + -4908348827451399810L, + -1162366502935483389L, + -3581470604892760162L, + -1434370488502028008L, + -1493293905909468959L, + -6762524287730181241L, + 1393564479464918401L, + 6717807842217858780L, + -2269779449488763938L, + 9119207083214966580L, + 4437289221718108033L, + 1991815488616873724L, + -1136008736729825773L, + 6919259317959590395L, + 5700567409540575886L, + -6511943523783520343L, + 8471138532439345892L, + -1261020616469785625L, + -871122257839774394L, + 5853266956701599170L, + -2605324811026081L, + 5645723143070327343L, + 6678903618140079830L, + -8243425527465830189L, + -7366977412613262267L, + 5554112623362949635L, + 8508696414094887570L, + 4526724121376344377L, + -3066464409160921518L, + 6423971479710566480L, + -1301150937530073813L, + 7047171805158365362L, + 6607488204808324896L, + 2550589198730302889L, + -1508652597994003459L, + -8797285250854566260L, + 4531577529333440300L, + 7171511780196023810L, + -8696995432677729109L, + -1038277725665095082L, + -4030021971399704454L, + -7142316504058264789L, + -8690342808784496917L, + -3538025267466743323L, + 3030344740150338756L, + -5434476681454308336L, + 4747881963413479619L, + 6649081146297801785L, + -1340297105335493395L, + -2345199575979290182L, + -5142497021023029281L, + 6590959395881104212L, + -669027690510749039L, + 4713909714515252237L, + 6334133652957330690L, + -4130611448171970254L, + -8777249173946876665L, + -3777422122544011758L, + -4139822748883105829L, + -85322879655457932L, + 8510613507788926362L, + 8480533752847008903L, + -1501849715563565256L, + 7144010316023561074L, + 7071721153639906878L, + -2413842258996393407L, + 3829076351340781609L, + 3904259427140354464L, + -2423161203681766273L, + -9222948412120414441L, + 2232806743868046887L, + 3459293971647694135L, + -4958044470517187570L, + 2702008978364322255L, + -5230685167113972622L, + -4777581725252095139L, + -178566492057125337L, + 5473668624447677467L, + -6025569476816496835L, + -1758476046405271590L, + 4318010125119483290L, + -5001898604592523465L, + 4496672693040208250L, + -6249539806063036132L, + -7752211883834007080L, + 5401928633460905475L, + -7924780124408034823L, + -5852842870036885474L, + -1507586788733048669L, + 8723145826212343490L, + 6322146995759068109L, + 7033327335320195047L, + 2731703606190537636L, + -5700197206770306283L, + -7681929128588407075L, + 4915318349456884393L, + -4365674444257230772L, + -618412543643891621L, + 5389658231644689771L, + -3464092788986188235L, + -1050158483149088836L, + 2986789282075383014L, + -7095920626607872836L, + 5041839261426701960L, + -9180003565648806832L, + -4136797423318912582L, + -815263725971673785L, + 7751482036034122791L, + -6582902412740766080L, + 4948480397753687589L, + 8076288905210502302L, + -9107950489265491053L, + -6184418323857721083L, + -8394291702992930332L, + -3765480365347368667L, + 9161366530222497706L, + -2767769147585489819L, + 8629853602447578989L, + 4143140731787551070L, + -6709802780961091740L, + -905525597452535126L, + 59611890502504912L, + 887996528204235726L, + -6522589813044041015L, + -717562431083190695L, + 4413597631385084460L, + 685793075458769616L, + 6534412965158226614L, + -7466805892367058580L, + -1643339784427405237L, + 8108897583594557150L, + -3012505670609614813L, + -2102992646348794512L, + 7496589075754797803L, + 7374879453359816181L, + -4473020896511090065L, + -2144052467882725474L, + 8932411294479920804L, + 1662104279385187462L, + 505577020704587182L, + 8970226030106571298L, + 4740935558188763942L, + -7479171385872798231L, + 7795864469149986219L, + 1988890416069916870L, + 5328957726704894445L, + 6393309991805794816L, + -8023969082870037181L, + -3201662046137010635L, + 7364167842238108568L, + -1133670122146177765L, + -3700583274673702753L, + 5152863800535605047L, + 4340628140712624150L, + 5588611203430726905L, + 2682781254448818030L, + -4334335781100941681L, + 2486482109045101170L, + -222120907104518499L, + 5461720682682027710L, + 8953356406381104317L, + 4813649794280024185L, + -8815822744547391388L, + -119150930688834339L, + 5696219244854669615L, + 8826694157719678034L, + -1678317963810155461L, + 2312220003237053610L, + -3288132327244573070L, + -6655294980817812847L, + -3093613585240964494L, + -1504599840801857900L, + -6463236998312950925L, + 5810208611405255502L, + -6761690440397609367L, + 451950190532227640L, + -5815456944452977190L, + -764130306143846512L, + 6419889081579466867L, + 4398197193823554358L, + 1464903517901841306L, + -1506288216502917578L, + 8699886991841245818L, + -3380656767633421271L, + 7278933867517081603L, + 3846023845717926438L, + 3407601931308300031L, + 1905732166195179585L, + -108117922380454789L, + -7519861222866947951L, + -4972130809215364346L, + -3021088137554827679L, + 8043600973137368044L, + 1434512585622151100L, + 1016884439578050772L, + -8647546074167685968L, + -8506558926671468128L, + 3841531502952176241L, + 4079049958054926435L, + -5539805586862437496L, + -7883676797140300306L, + 140190142986856503L, + -2694098382777014524L, + 3353255930521897564L, + 2673408461261660763L, + 3333109393952734968L, + 4825771068490982684L, + -1033017699452578891L, + -6425096031606191368L, + -3656030991400647770L, + -8647425424751627856L, + 3478736455049888956L, + 16599786738656663L, + 3377618271754536312L, + -7335129354324713170L, + 7006821265423054973L, + -6604032179699952888L, + 1631574662141238563L, + -6071005127816416359L, + -160948602692816917L, + 2439292442953103260L, + -7784485611988136914L, + 6406517206208162673L, + -3111851768592482815L, + 614615425925214040L, + -3556195010057046934L, + -8360577559236335104L, + -739612675357837554L, + 7772269085929933056L, + 301334074305006580L, + -3173646397989105785L, + -1841824288198551420L, + 1197412702727156776L, + 1316932784236645744L, + -8257483426031914296L, + -8846153844918116222L, + -270342118487428514L, + 773674155630100861L, + 6037581810683864126L, + -5245384017768292829L, + -6666883988353617786L, + 3478725688838981124L, + 5546782277057101197L, + 1942226182099172621L, + 9102708557688253903L, + 9057469348188803174L, + -4031312569229337466L, + -9072824545184945687L, + -3855790695273650364L, + -653872491134432764L, + -4080206884907012270L, + 3311573742599462083L, + -269764702825894936L, + -2766987632263151155L, + 6602535166262597916L, + 8827004592088991732L, + 1592583601190212294L, + -3667633871893247038L, + 3486449146725138397L, + 4359563813403699388L, + -4906066947120349290L, + -4330401382584040114L, + 4803580003918030391L, + -235574200222954516L, + -1394367949090492983L, + 4737542241672587937L, + -8856986665935885808L, + 1817303441870832271L, + -7240430001371174281L, + 3145103301223918932L, + 3477270089202844825L, + -4891077676842527034L, + -6459627619991208890L, + 41856325087285886L, + -1382249026510602312L, + -2521070087258742337L, + -2328070419092090664L, + -5388262052233273295L, + -5999142598302515399L, + 5176296022819478017L, + -8067233187432429974L, + 8892405394182984962L, + 6981068794359751546L, + -8944306852219597850L, + -3031777418502459563L, + 2323104536537852233L, + 9124712187601380882L, + 9137253645240139706L, + -8322892360260055499L, + 8407207834684403871L, + 7071881337439672371L, + 666653966378152392L, + 8872525458728668509L, + -647279373040971223L, + -4461978934957838597L, + -8547295400497453835L, + -8365906280976763859L, + 6814338820251845756L, + -8627557778552684742L, + 1758840533399088383L, + -6750756896288158784L, + 6395311215695067196L, + 392880119943578248L, + -2323700597403900754L, + -6462812207087401690L, + -7551080163645560286L, + -9100215524786223062L, + 2524911097994505678L, + -2413500551656055296L, + -3127527627858617051L, + 28303212483427471L, + -6013779137277216469L, + 2384861921525290083L, + 8909147637811545615L, + 5899702029055461370L, + -9169591182444006478L, + -8983057629681813417L, + -8861230054592033877L, + 8410267594044953503L, + -6655030751206229874L, + -6267989963116339301L, + 31106559957685675L, + 6344345657589688690L, + 8238818461566157187L, + 1502493109774801856L, + 3469110631126639783L, + 2128732756904122570L, + -6695477927845519719L, + 2528367395277931442L, + -329099838923643362L, + -7212791470765971061L, + -3974900257611008409L, + -6102716001138106504L, + 5975084928006556639L, + -2369197195204065449L, + 4487412260085465950L, + 1389218775050647169L, + -210563038269997706L, + -922257600076658999L, + -1130043160249584113L, + -6984222506141862497L, + -2916447389269713954L, + 4788071442219355775L, + -6019318505971293886L, + -6494546725482896662L, + -4363700123795407864L, + -413176181805813162L, + -318122404650466995L, + -1599593833241308652L, + 2190631003347506794L, + -4995495324074558376L, + 4218530180585703693L, + 6649230517887455428L, + -2433122371099559642L, + -2330882739734692624L, + 8573791066461702522L, + 6970674048709593485L, + 4649249821199623523L, + 7311119499624527481L, + 4680575275115317809L, + -5342935153571170373L, + -3116361043570347782L, + 7648138161603070701L, + -7868309300294741850L, + 2168590009590153900L, + 1490446147749965016L, + -1283008494190853295L, + -3544718913503298823L, + -6534742186538530460L, + 8888468655599547353L, + 2087090769425642258L, + 7827670472827763897L, + 5012267323158846243L, + -7741892984083231808L, + -3464875091939295355L, + 6758409038153561859L, + 7975975224774285641L, + -1784622809729929558L, + -2393574261519991129L, + -6610200673241373487L, + 7928053024182934824L, + -5277949614542058690L, + -7247922641677687748L, + 2028835673665475733L, + -1777986108022598102L, + -3172999022236468759L, + -6985445521140497368L, + -5695545706582407660L, + -4309483684393591256L, + -3401005720978902388L, + 1936529279105293703L, + -8305374440470863587L, + 16315157402312675L, + 8569329186502607478L, + 3622231363337094235L, + 3976043631923911750L, + 2180152175451630095L, + 6056371270826025517L, + 8139874952265577458L, + -6194153431530741778L, + -8577895877125457083L, + -790303016491014290L, + 1748735841046690659L, + -4993780459372161153L, + 5287205275463538041L, + -6049243002864424978L, + 6094628311576432102L, + 1723598070277281371L, + -2030013138372962335L, + 581254472737031976L, + 2883452134968639016L, + 7463603388570246862L, + 8269801870818255538L, + -2721070413905263091L, + 2457346831596438200L, + -8372860384678057653L, + -3210661626851492038L, + -2431103856629925112L, + 5898720385544051772L, + -3594404508869529256L, + 7736856796149395645L, + 4344265719410640477L, + -1183171608899090204L, + -2897986809520726521L, + 8305011769957443997L, + 4795229490900606846L, + -4075891264094240154L, + -9041912526913309251L, + 4789314080457888127L, + -7212841446169150525L, + 7614738331996330350L, + -2806024093029511670L, + 7475540037729743195L, + -208315385211774637L, + -1296899054609750506L, + 2821295913762275529L, + -8879859100383139039L, + -1026712876851747915L, + -8740379160227472449L, + 292511471974483828L, + -6882168959749241763L, + -1890145082814895769L, + -4562439963586418047L, + -4665008591354792917L, + -390136948977793829L, + 2489571518656765596L, + -4606174591656425576L, + 3915092809925941183L, + 9047840161614493431L, + -3633022588647399004L, + 6942969346669131736L, + -6694490826379010151L, + 1324301462784912541L, + -131359952912781984L, + 7699402503208720283L, + 5622479144398033413L, + 6967949859886140765L, + -4032338302965368957L, + -5963416332716588452L, + -3560763554691360091L, + 1005099059372059445L, + -3613443378421770201L, + 8186020547591708957L, + -4239294927646312066L, + 8486099747374488535L, + -8232895327339487639L, + -326238615306018799L, + 3757565981936253922L, + 6778212967891221904L, + 3207873024341334560L, + -7523175474658440577L, + -2278786475151426330L, + 8466836425666023990L, + -4582382447378461393L, + -6578561293342792192L, + -5704990689206920025L, + -2389743517442092247L, + -4253115007157692595L, + -8929813271704719513L, + 5099815622657901533L, + -1568292864717899125L, + -8985414394814021973L, + -2456273479716732497L, + 6294081109509751388L, + 3028102295678003049L, + 3539887196501896592L, + -1575691248319511603L, + 8966746464734142359L, + -6995340021363899582L, + -7800639148789851713L, + -8224260699176813192L, + -1938885039339650999L, + -6014303778691459857L, + 6353855006008545499L, + 682899654558677209L, + -227004043734081415L, + 4175445164667592327L, + -5892774236575987682L, + -1054851063871573686L, + 7378945432015543779L, + -9025847508399685521L, + 8507123498478659641L, + 2634415008322296937L, + 8499997933084393618L, + -2343091536239164797L, + 4943477958300830784L, + -5716138953695402001L, + 3654955422185200330L, + -3855175918674625767L, + 2942012910816921425L, + 2135649495450577190L, + 2489749270232932598L, + 3075573886722866022L, + 4741621495679187373L, + -2533070995420675111L, + 8016604412923285952L, + 3655782710664522385L, + -331575483966243030L, + 5563239881147789110L, + -3536395547713373675L, + 7913843468604629821L, + 5809470005231530425L, + -4975803751638349405L, + 4232625781800052755L, + 6732116987820363984L, + 8254350875123440214L, + 8678768551976889459L, + -7648934972481089708L, + 3723349959659703109L, + 6247511200357726796L, + 8031315762976704315L, + 1080967314182171216L, + 8561519680933409213L, + -4881637187705091353L, + -1748916130722404954L, + -427313373952636003L, + -3301131413273237404L, + -1569066768226212095L, + 8869766464584553885L, + -1961352451311113660L, + 266916750915890668L, + -6043655819212470095L, + 6958639066650934551L, + -7491396823220354282L, + -5706244121092248742L, + 2058565949849149623L, + 3917621928532856993L, + -5285914392340260969L, + -168243632194730904L, + 6675032706416988527L, + -1840378443456062350L, + -7806824272957817769L, + 112697577821879088L, + -4000943011066585594L, + 2818144475816625033L, + -4440191780652473075L, + 5290425627535986178L, + 3439261124616388302L, + -8796398171847802394L, + 2206978116305603858L, + 8337592206550774275L, + 4830967377052828283L, + -3675693473899758315L, + -3108840240467865078L, + -9161001698053177695L, + -2297481807921754784L, + 6805568340065774603L, + -3391258244299519321L, + -749159983993382844L, + 7062232236008961533L, + 8333689744281941417L, + 2017452506567785764L, + -8052757095945795921L, + -8679429010410768062L, + -1669769454675143183L, + 1021385511452112192L, + 2735516449063469298L, + -8689901914251408811L, + -2768144086776923110L, + -2202724657096524491L, + 2163604710661256429L, + 440602864681103213L, + 5959058277963677044L, + -1962091009504664018L, + 7850741655764818791L, + 5642260926720676901L, + 5408898583245429104L, + 7038508131990238779L, + 3607846536923261161L, + -845982521020496047L, + -2264177099345700631L, + 20359578843289632L, + 525387587427138539L, + 7263487202515015380L, + -6022234835374448888L, + 8771216931413507676L, + 971990022205374619L, + 7021724132924988656L, + 7039083302981701109L, + 4204637396958585348L, + 4188090497012985750L, + 4376437258965105347L, + 739302444316090012L, + -6525785024015383256L, + -5902189526714689919L, + -2086878366253206692L, + -4180968549067503810L, + 520335013266400476L, + 2183825622398646326L, + -5564778184706962647L, + 8650796499367868629L, + 6133888236137780152L, + 3302115923459930139L, + -5937793818041183192L, + 6136033530618946018L, + -7445428676723525682L, + 5094265850028691255L, + -7682752822893337463L, + 2360556001507188553L, + 4691951638183144722L, + -3830875212384544737L, + 1394869612670592029L, + 6721262565314161917L, + -4730012123689790930L, + 6010638756354340578L, + 4031121074915162261L, + -8189520056149158263L, + 5699902859355185981L, + 4409202837690861395L, + -4004308357657832082L, + 324207669529782050L, + 4535231947997767569L, + -5065771485887356402L, + -6148808728279097894L, + -8715608844307329735L, + 5490745425133075827L, + -367120062639329977L, + -2362408583935145326L, + 4249838900346469450L, + 3354190632527652547L, + 8650024540421064319L, + 1390121173325989151L, + 4407722572355267530L, + 1305681461138455335L, + 6099199904041118254L, + -8896625676033180325L, + 839449618742345953L, + 2108603209434414606L, + -6476270516642075823L, + -5906022157324316338L, + 1786301043676368787L, + -734452738262121042L, + 9129473457452515473L, + -4270195884135199090L, + 2788589943226781334L, + 854782643768940534L, + -6834471408050497483L, + 939538118216915189L, + -752821676934059887L, + -3925004345170320451L, + -8932717110665275243L, + -7095359027251951606L, + 7643915390524006789L, + -1927702468531393748L, + -7842897924029333727L, + -2005262014091460598L, + -1463327401577112707L, + -1828846898463724235L, + 3421730855491731072L, + -2572236860591883027L, + -7674305242810151190L, + -2921293091126082953L, + -2112272959722776468L, + 5994003596842057813L, + -1403058426817118276L, + 8847371890841156208L, + -1502366106598365249L, + -7223092882480940906L, + -6863117362364849357L, + -6486108986580560522L, + 5841273524403391013L, + -3945405895274884805L, + -8374909777151107129L, + 53304606899741030L, + 4615695750455104916L, + -7114565447402461330L, + -4643391974067777176L, + -6418268910872627783L, + -6758153388660633319L, + 3883028944583062885L, + -8717746570766619134L, + -2916775336586188872L, + -8074909175856917009L, + 3525909159494548665L, + -6434174792604831222L, + -7504160568097417051L, + 2001874122000013346L, + 7613526286976804831L, + 2464361623791150786L, + -2129233914182690890L, + 3209269703778816910L, + -8010470561318389930L, + -6082567480910205891L, + 2027383934435049120L, + 1676758519641328373L, + -8606433480037293753L, + -566732216614183074L, + -7052986422070927806L, + 6759547283385841440L, + -6753685466722762948L, + -5378389309155242913L, + -6627920366497701138L, + 6374316983929412845L, + -2482225971676290230L, + -4599659905021815233L, + -5751984843591190616L, + 4511247687213585367L, + -2476604560440409237L, + -114383761088915611L, + 6450270090553874467L, + -5846154312963348311L, + -8623677702310698753L, + 2393721797395064071L, + -1818986917546634465L, + 4707876179516363283L, + 4194493322864848953L, + -5862485881220479014L, + -7779495775631012707L, + 1429810574540763592L, + 6243218102267301238L, + 3112138729863740057L, + -7917371226803982155L, + -3846717136498455001L, + 7941035918354784272L, + 6054418261287151348L, + 2241054973421403682L, + 2108883531438643423L, + -5118957553064582950L, + 6840064986465667257L, + 1701114564579911641L, + 7866363409355715940L, + -7811750917271050315L, + 4258900268014843560L, + 2910381907881532246L, + -7407853986731113039L, + -1164923521782235469L, + 5071804620493814073L, + -5221820283650092409L, + -2085943650488071863L, + -4691931711041122390L, + 5141081400574039177L, + 4412440312825017190L, + 865265935918874733L, + -3162395727240029817L, + 2583523221463203765L, + -2230477299980342161L, + 1259435039139370849L, + 1365261303243408423L, + 123583301618412419L, + -3355292811340436088L, + -1727563074004288880L, + -8133802905721685614L, + -6552132843349831539L, + -1887405913282768589L, + 579752349959797974L, + -30747658301300128L, + -927889569251598514L, + -598220531698559825L, + 2933084143972969973L, + 1881216270838286368L, + -8591542187284077544L, + -2746195460013203014L, + -4115580643333612767L, + -2101698311751878965L, + 5245788963589320347L, + 4270169879132043112L, + -3833918223343506508L, + 942125237032353686L, + -6956461266653105716L, + 7913560303134573539L, + 8866560449264109272L, + 1772637526204651639L, + 6195153795464161383L, + 8993984678406525057L, + -4726061955654809508L, + 3735265735496936434L, + -6130568352441921952L, + 914728955300562981L, + -4063651775288818415L, + 7163723758837672393L, + 6047067511151254132L, + -85970498549649175L, + -9052941052352548153L, + 4240460500266637523L, + 5163784737021140449L, + -4716331032104787044L, + 5489681070460969049L, + -5530595986986981098L, + -5278261126239207272L, + -7077173381332846300L, + -7391343501975496029L, + 7813143400706294876L, + -829387125962495297L, + 4670865291775900382L, + 9020186365194420955L, + 6433988241346982419L, + 5456431567263680486L, + 577121399356211412L, + 4315536067351582084L, + -2651573533423085833L, + 7729294536223119956L, + 823406537236537172L, + -3197784427651817583L, + 3073787778728381013L, + -6145117092298484037L, + 825473167547740369L, + -6384124143193023811L, + 6743275140960345819L, + -6607284289920060697L, + 6113681357284605143L, + 7689553101083010355L, + 7733899730013301027L, + 2492677562497092915L, + 4728492123871940113L, + 6678104742805246060L, + 5109599002723184885L, + 1552728313401432217L, + 4260747280707230837L, + -593097661878040944L, + -5924961133842904285L, + 4723826630465061674L, + 268913169937480109L, + 2542402711842995289L, + -1051287017878596624L, + -444276555201322762L, + 7942493575456109374L, + 3061527869577259411L, + 4193974852415330113L, + -1301232869890041839L, + 7435225101451773213L, + -9001651199021564702L, + 6863640439001667225L, + 5554839952330233864L, + 1018125067733426387L, + 5106471895041805751L, + 6755291848201476506L, + 204883989932056912L, + -2918800393497291312L, + -361123969592716017L, + -3248350955607675877L, + -3093925735525511829L, + 3287300458522620431L, + 200614927215937352L, + -3637256374159515512L, + -7088130147825572228L, + -1454877327154711975L, + 200290346546176890L, + -5273070491678100412L, + 9126524747081374017L, + -2469359255503465276L, + -5451210609015247756L, + 1345843315473598819L, + 5658367014892979201L, + -418967882289891730L, + -8563171322679387325L, + 3076280980125057136L, + 7452927116456175377L, + 7779645020063005680L, + -1134607767941445560L, + -683371285258284330L, + 3622514687262401912L, + 2057491561658004489L, + 1274581986030567362L, + -7605424030712005369L, + -1904495568695037810L, + 7235082449551676221L, + 7691343848640211912L, + -2574437254990241198L, + 7672749762009557292L, }; } diff --git a/src/test/java/net/openhft/hashing/XxHashTest.java b/src/test/java/net/openhft/hashing/XxHashTest.java index a49aef3..720ee28 100644 --- a/src/test/java/net/openhft/hashing/XxHashTest.java +++ b/src/test/java/net/openhft/hashing/XxHashTest.java @@ -56,2086 +56,2086 @@ public void test(LongHashFunction city, long[] hashesOfLoopingBytes) { LongHashFunctionTest.test(city, data, hashesOfLoopingBytes[len]); } -/** - * Test data is output of the following program with xxHash implementation - * from https://github.com/Cyan4973/xxHash - * - * #include "xxhash.c" - * #include - * #include - * int main() - * { - * char* src = (char*) malloc(1024); - * const int N = 1024; - * for (int i = 0; i < N; i++) { - * src[i] = (char) i; - * } - * - * printf("without seed\n"); - * for (int i = 0; i <= N; i++) { - * printf("%lldL,\n", (long long) XXH64(src, i, 0)); - * } - * - * printf("with seed 42\n"); - * for (int i = 0; i <= N; i++) { - * printf("%lldL,\n", (long long) XXH64(src, i, 42)); - * } - * } - */ + /** + * Test data is output of the following program with xxHash implementation + * from https://github.com/Cyan4973/xxHash + *

+ * #include "xxhash.c" + * #include + * #include + * int main() + * { + * char* src = (char*) malloc(1024); + * const int N = 1024; + * for (int i = 0; i < N; i++) { + * src[i] = (char) i; + * } + *

+ * printf("without seed\n"); + * for (int i = 0; i <= N; i++) { + * printf("%lldL,\n", (long long) XXH64(src, i, 0)); + * } + *

+ * printf("with seed 42\n"); + * for (int i = 0; i <= N; i++) { + * printf("%lldL,\n", (long long) XXH64(src, i, 42)); + * } + * } + */ public static final long[] HASHES_OF_LOOPING_BYTES_WITHOUT_SEED = { - -1205034819632174695L, - -1642502924627794072L, - 5216751715308240086L, - -1889335612763511331L, - -13835840860730338L, - -2521325055659080948L, - 4867868962443297827L, - 1498682999415010002L, - -8626056615231480947L, - 7482827008138251355L, - -617731006306969209L, - 7289733825183505098L, - 4776896707697368229L, - 1428059224718910376L, - 6690813482653982021L, - -6248474067697161171L, - 4951407828574235127L, - 6198050452789369270L, - 5776283192552877204L, - -626480755095427154L, - -6637184445929957204L, - 8370873622748562952L, - -1705978583731280501L, - -7898818752540221055L, - -2516210193198301541L, - 8356900479849653862L, - -4413748141896466000L, - -6040072975510680789L, - 1451490609699316991L, - -7948005844616396060L, - 8567048088357095527L, - -4375578310507393311L, - -3749919242623962444L, - 888155921178136237L, - -228195649085979072L, - -521095004075279741L, - -2458702038214709156L, - -2792334161285995319L, - 7509323632532862410L, - 46046374822258777L, - -731200582691896855L, - 933917387460394992L, - 5623144551929396680L, - 6456984547425914359L, - -6398540474588876142L, - 1224372500617079775L, - -931727396974525131L, - 979677643219401656L, - -8078270932489049756L, - -92767506898879473L, - 2379112167176776082L, - 2065719310945572007L, - -4972682801816081667L, - -7346559332994187462L, - 4674729779638751546L, - 5844780159702313017L, - 925606237565008152L, - 8164325403643669774L, - 5124005065773312983L, - -4646462236086916483L, - 4733593776494364101L, - -6408850806317360L, - 7405089268865026700L, - -2131704682637193649L, - -592659849139514384L, - -4386868621773355429L, - -2216833672566288862L, - 4022619316305276641L, - -60464713570988944L, - 2416749694506796597L, - 3576590985110933976L, - 3368688771415645536L, - -357157638897078259L, - 3484358739758473117L, - 2078888409435083535L, - 8053093288416703076L, - -4934736471585554038L, - -7784370683223414061L, - -4109284735634941390L, - 5982490102027564625L, - -4991107002810882893L, - 8664747912276562373L, - 8536879438728327651L, - 2358675440174594061L, - 5352236919104495867L, - 6340852522718110192L, - 5075606340464035668L, - -6313168920073458239L, - -6428599582591385786L, - -7278654800402467208L, - -6630626099856243581L, - -7548742438664634646L, - 5514383762309532642L, - -5996126265702944431L, - 4011116741319319261L, - -7289240093981845088L, - 4975257207486779926L, - -3945500877932691916L, - 1973955144068521079L, - 3884425912161913184L, - 7692681977284421015L, - -1616730378439673826L, - 4799493270916844476L, - -6107310582897997679L, - 3643294092300179537L, - 5406040598516899149L, - -3032420409304067208L, - 5044227119457305622L, - 9165032773225506149L, - 7553488247682850248L, - 2247298339072845043L, - 7380491470304042584L, - -456791943260357427L, - -1906500292613319324L, - -4025157985304129897L, - 6167829983725509611L, - -8678196943431064825L, - -636391087313417831L, - 5757999497725839182L, - 8999325347316115948L, - -6042339776328081249L, - 7988836354190359013L, - 2818448030979902104L, - -8484201484113382447L, - -1140175406473847155L, - 3042776987426497381L, - 3147338037480432386L, - 5065714330193756569L, - 8827021486636772242L, - 838335823706922959L, - 481844220820054909L, - 5333474685474667077L, - -3722898251196013565L, - 7909417627390150381L, - 7116148225996109646L, - 7520381989775811302L, - 6045444672904719015L, - 169039646730338133L, - -2144629916252757106L, - -3752608501798118554L, - 8374704774878780935L, - -5830926781667225570L, - 3202139393110256022L, - 4400219135677717216L, - -5663710220155589201L, - -2589002340345751622L, - -8240133511464343390L, - -4036798392879835146L, - 501599054729008501L, - -4851415719238782188L, - 7565157933617774080L, - -6428091359957700043L, - 4081845077806300175L, - -9016659258880122392L, - 7811786097015457596L, - 1357606791019752376L, - 6522211979684949668L, - -3462397075047559451L, - 3075504459164148117L, - 3055992297861390732L, - -7230492327399411047L, - -1128103378253532506L, - 1834607408788151585L, - 7065978976369231860L, - 6566122632438908362L, - -3440855531356735824L, - 6271453770746181891L, - 413365468403580071L, - -8342682158827061522L, - -3713303136987568731L, - -8959326895824091541L, - -2793862582117663595L, - -184756427409317729L, - -7052502019782453427L, - 3666196071825438258L, - 170204095295428634L, - -1880693509859077843L, - 5179169206996749826L, - 2866097700453114958L, - 1859104195026275510L, - 3782323564639128125L, - -6485194456269981193L, - 6761934873296236857L, - 5764605515941066448L, - 597754945258033208L, - -4888986062036739232L, - -6490228233091577705L, - 3234089784845854336L, - -5506883591180767430L, - 1491493862343818933L, - 3232293217886687768L, - -4079803366160739972L, - 4884134040093556099L, - -7274733680156962461L, - 5265680254123454403L, - 1036855740788018258L, - 423439784169709263L, - -3627743032115866622L, - -6311378083791982305L, - -3058076915688265687L, - 5826550132901840796L, - 8049712006832885455L, - 1707844692241288946L, - -3293048440386932248L, - -2458638193238955307L, - 943059295184967928L, - 3899561579431348819L, - -1516862862245909493L, - 4448476568037673976L, - 8738531437146688925L, - -1033913449611929894L, - 733668166271378558L, - 438686375775205249L, - -4325889118346169305L, - -238178883117433622L, - -7972205050662019794L, - -1263398103237492853L, - -8333197763892905802L, - 7796341294364809534L, - -1381767618016537445L, - 2892579485651013970L, - -3376209887503828920L, - -8575120126045607817L, - -1609355362031172055L, - -386138918275547508L, - 4598874691849543747L, - -2961781601824749597L, - -3032925351997820092L, - -4256249198066449735L, - 6712291718681474012L, - -4281614253751277086L, - 3727487933918100016L, - -2744649548868700294L, - 8662377383917584333L, - -9154398439761221404L, - -6895275824272461794L, - 3394857180017540444L, - 2010825527298793302L, - 4894417464710366872L, - -6879244364314087051L, - 83677167865178033L, - -8258406393927169823L, - 5042126978317943321L, - 6485279223034053259L, - 4442956705009100620L, - 316801800427881731L, - 1381431847939703076L, - 5172932759041399062L, - -69656533526213521L, - -5302643413630076306L, - -3956089084400440856L, - 372087412941022771L, - 4711314482928419386L, - 3255220726505012060L, - 8917854303046844847L, - 1116214654602499731L, - 2282408585429094475L, - -9207590323584417562L, - 8881688165595519866L, - 1731908113181957442L, - 3847295165012256987L, - 4457829016858233661L, - 4944046822375522396L, - 3445091217248591320L, - -5055680960069278553L, - -399195423199498362L, - -8109174165388156886L, - 4967185977968814820L, - -5911973391056763118L, - 2239508324487797550L, - -954783563382788523L, - 8523699184200726144L, - 932575865292832326L, - -7491448407022023047L, - 1809887519026638446L, - -8610524715250756725L, - 6158809695983348998L, - 4948400960714316843L, - -4513370424175692831L, - -3955280856263842959L, - 6440233015885550592L, - 8756942107256956958L, - 7895095834297147376L, - 370033091003609904L, - 948078545203432448L, - -8523229038380945151L, - 100794871657160943L, - -2186420796072284323L, - -9221115378196347951L, - 8102537654803861332L, - 5857339063191690550L, - -4554257374958739421L, - 6607496554818971053L, - -778402196622557070L, - -3817535277727878318L, - 3564122000469288769L, - -44446230828995950L, - 1322708749649533240L, - 6150374672341998205L, - -3300275952549095391L, - 5700833512536085850L, - -8559358370491270937L, - 5434443260519512697L, - -8031025173259990945L, - 7117462129248544172L, - 5425177419943569451L, - -7215427371174054838L, - -5728669976971194528L, - -2096361446095323077L, - -4247416835972286805L, - 4912769047482466787L, - 7755341152739082452L, - 6797061233443658471L, - 4089361562209715474L, - 5830701413838808929L, - 5514515889578551370L, - 609334005368729318L, - 177310574483850759L, - -820431153866372784L, - 7188454041446661654L, - 7480194911613035473L, - 4564607884390103056L, - 888496928954372093L, - -5480535802290619117L, - 9100964700413324707L, - 510523132632789099L, - 8249362675875046694L, - 5340321809639671537L, - -4633081050124361874L, - -839915092967986193L, - -7377542419053401928L, - 1820485955145562839L, - 8517645770425584256L, - -1877318739474090786L, - 7674371564231889244L, - -3311130470964498678L, - -880090321525066135L, - -5670998531776225745L, - -8828737503035152589L, - -6029750416835830307L, - -6535608738168818581L, - -550872341393232043L, - 2831504667559924912L, - -4613341433216920241L, - 502960879991989691L, - 576723875877375776L, - -2575765564594953903L, - -4642144349520453953L, - 7939746291681241029L, - 6486356905694539404L, - -9086235573768687853L, - 5369903658359590823L, - 3199947475395774092L, - 8384948078622146995L, - -3365598033653273878L, - -2525526479099052030L, - 2648498634302427751L, - 3715448294999624219L, - -4734466095330028983L, - -8440427851760401644L, - -371198022355334589L, - 8864079431738600817L, - -4205600060099565684L, - 6617166152874298882L, - -6515522971156180292L, - 7254251246745292298L, - -420587237082849417L, - 1190495815435763349L, - -474540026828753709L, - -8150622114536376016L, - -5790621848044235275L, - -2780522220219318167L, - -2991155855957250848L, - 1692932912262846366L, - 8814949734565782733L, - -8746818869495012552L, - 7931250816026891600L, - -7434629709560596700L, - 4388261932396122996L, - 7154847153195510802L, - -2810154398655124882L, - 2601892684639182965L, - 7781574423676509607L, - -6647000723020388462L, - -8679132292226137672L, - -2447013202020963672L, - 3658855631326217196L, - 2176620921764007759L, - 3654402165357492705L, - 4511989090021652156L, - -3254638803798424003L, - 9050506214967102331L, - 922579360317805810L, - 609820949221381248L, - 5723875594772949290L, - 4637721466210023638L, - 6195303339320487374L, - -38202587086649325L, - -2142927092331878341L, - 5355751314914287101L, - -7170892783575760055L, - -7506612729078573199L, - 8645580445823695595L, - 3221950179890871958L, - 1638211443525398634L, - 7356718304253861777L, - -296260062751271549L, - -1790105985391377345L, - -7004118620405119098L, - 7056012094479909462L, - -7673357898031223798L, - -8929502135696203556L, - 7527161467311997998L, - 6182865571027510002L, - -2163310275402596869L, - 6285112477695252864L, - 3703909999924067987L, - 962491298117560533L, - 138936592567072793L, - 6094857527471100960L, - 5914305068838335718L, - -8896724991235492552L, - -2667562314507789198L, - -7456492499188304500L, - -3422709784851063201L, - -1511644999824238281L, - -7130158069449057322L, - 6243266426571961929L, - 2713895636371672711L, - 5765589573821453640L, - 2624585483746388367L, - 3933828437519859601L, - -5664404238108533781L, - 7086393398544811684L, - 1322058227068490376L, - -8232508114671021371L, - -5963804389649678229L, - -3318229976491806899L, - -6261789542948241754L, - 199130260709663583L, - 7521707465510595039L, - 507353862067534334L, - -7737968456769005928L, - -8964687882992257099L, - -7735003539801528311L, - 6989812739838460574L, - -6986289777499051441L, - 1881562796144865699L, - -6077719780113966592L, - -5427071388091979746L, - 1660707436425817310L, - -4338189980197421104L, - 5330934977599207307L, - 4461280425701571033L, - -7426107478263746863L, - 4258305289832328199L, - -8003283151332860979L, - -2500604212764835216L, - -8883941775298564436L, - -5059709834257638733L, - -4582947579039913741L, - 1371959565630689983L, - -1925163414161391371L, - -1180269729544278896L, - -6603171789097590304L, - 8985062706306079731L, - -3588748723254272836L, - -6052032019910018725L, - 6200960040430493088L, - 2146343936795524980L, - 7785948646708747443L, - 4524411768393719400L, - 749211414228926779L, - -163844243342465015L, - 1066801203344117463L, - -3687825939602944988L, - -4873811917429870500L, - -3765115783578949524L, - 3344884226049804020L, - -22793631121165636L, - -5636541624133159076L, - -6201449576244177151L, - -4533734412127714050L, - -2064657727206266594L, - -1325853623186040989L, - -2651306529045029511L, - 903264360879626406L, - 6082283797495873520L, - 6185446819995987847L, - -5727850940826115079L, - 8356646143516726527L, - -7705915341280821272L, - 9137633133909463406L, - 6613483969797411894L, - 8598514961735984460L, - 6805925079991408361L, - 6009403222422527608L, - 2216303622650116705L, - -3736062178532154638L, - -7139008962939637477L, - -1537711200058404375L, - 8896755073380580322L, - -6063426810787442347L, - -3472064301690015285L, - -4568131486464952371L, - -8141256104294687045L, - 5627435360893599536L, - 1136003802967708029L, - 2730027518034735037L, - 1985287040172139729L, - -3643431491383365431L, - -9042919736106376701L, - 8879968900590373568L, - 8504486139877409399L, - 5832665747670146536L, - 4202923651402292496L, - 1738511892080946286L, - 4512683881549777042L, - 9200194457599870145L, - -1948301178705617139L, - 8655715314401162523L, - 412698981651521600L, - -1479274044808688580L, - 2688302549664693359L, - -3059920027366623178L, - -4275753325231806565L, - -8321791698013769889L, - -3678119714812414102L, - -2500922551770832553L, - 9018541633115002061L, - 5713301371152396803L, - 4180584812840471799L, - 3062416401091271879L, - -8125716681035757962L, - -2076056159878596225L, - 8855540523533374738L, - 2402007906402689092L, - 2020584786288649542L, - 1707405964421070701L, - -3681994462249973122L, - -3982567775984742012L, - 7133200226358561844L, - -5270514263562558963L, - 9060760368219219429L, - -6967162372382490281L, - -9094664463528453384L, - -3968518633408880046L, - 8618660189330281694L, - -4668946581954397558L, - -8596433172676363407L, - -1264942061713169049L, - -5309493221793643795L, - -1099320768477039529L, - 8925041285873295227L, - -6809278181760513499L, - -7039439984223885585L, - 6188209901527865226L, - 1487353394192637059L, - 2402097349430126337L, - -3818359601525025681L, - 4123217079279439249L, - -1424515143377220376L, - 1742298536803356877L, - -2836832784751148874L, - -4838603242771410698L, - 2383745618623084414L, - -2790832243316548423L, - -1176683649587660160L, - 1862928178605117401L, - 5208694030074527671L, - 4339841406618876548L, - -7704801448691668472L, - 500068664415229033L, - -2111184635274274347L, - -1387769336519960517L, - -2368660677263980293L, - -4980481392402938776L, - -6856361166068680884L, - 1708658704968066797L, - -9013068514618931938L, - -2616479975851677179L, - 7121103440247327570L, - -7094192881960646061L, - -4042342930006488618L, - 5294323611741266775L, - 5235545113690922502L, - -2562011392475214878L, - -4613304566070234734L, - -3784386310583029381L, - -4526148219816534267L, - -8643470129031767968L, - -4573761335510927866L, - -8255399593563317902L, - -1925488377092111963L, - -1747797357090594237L, - 7292772921748919564L, - 3951718848780851600L, - 5339305877764077075L, - 7889570407201305102L, - -8935437555550449315L, - -1858205318388884024L, - 381779657795494278L, - -3769854251228686168L, - -7957724087073627355L, - 4349540075286824743L, - -2476434494603040708L, - -4506107235113109706L, - -7120863144673563848L, - -8534342596639587598L, - 2205658724629050493L, - 604438195864305027L, - 4530331938860561927L, - -2074141653226683751L, - -1114378227875974007L, - 3377301950002508302L, - 5369356700690664306L, - -1747063224581819445L, - -6320380781966280801L, - -2075443262555773155L, - 1028541493355576591L, - -4694402890123574860L, - -5250660999767019003L, - 3847087895315315136L, - -4448050214964317066L, - -4591316307978008151L, - 4894820902772635901L, - 3088847887353411593L, - -6699208183127463352L, - 4636731998354510780L, - 9095126525233209263L, - 4135373626035182291L, - 3835688804093949701L, - -3490782692819028324L, - -561453348486424761L, - -3329283619698366365L, - 3251154327320814221L, - -8006986328190314286L, - 5856651505286251345L, - -8871425101391073L, - 7806993676637210959L, - 7586479850833664643L, - -7091216108599847229L, - -3410137297792125447L, - -8251963871271100526L, - -8849730915506517177L, - 8400334327557485676L, - 1676125861848906502L, - -8480324002538122254L, - -1402216371589796114L, - 5951911012328622382L, - 8596811512609928773L, - -2266336480397111285L, - -8840962712683931463L, - 4301675602445909557L, - 1843369157327547440L, - 2169755460218905712L, - -1592865257954325910L, - -8763867324602133653L, - -4283855559993550994L, - -7577702976577664015L, - -5152834259238990784L, - 4596243922610406362L, - -4326545138850544854L, - 1480440096894990716L, - 8548031958586152418L, - 6705615952497668303L, - -2915454802887967935L, - -6137002913510169520L, - 2908515186908319288L, - 5834242853393037250L, - -6721431559266056630L, - -7810820823419696676L, - 1954209413716096740L, - 6657013078387802473L, - 2214178984740031680L, - 8789512881373922013L, - 1240231669311237626L, - 8694612319028097761L, - 492180561068515854L, - -6047127535609489112L, - 7436686740711762797L, - -4520261623507558716L, - 938282189116272147L, - 3232025564608101134L, - -5425498066931840551L, - 932123105892452494L, - 9054941090932531526L, - 8066693670021084601L, - 764877609198828864L, - -489112437588815338L, - 4827691353685521957L, - 1948321254606741278L, - 6117773063719937712L, - 4645962658121906639L, - -7846887104148029590L, - 4210795945791252618L, - -8879516722990993098L, - -2621063563373927241L, - 2094675051444850863L, - -8681225697045319537L, - 6072534474938492189L, - 6181923696407824226L, - 5463607676777614919L, - 3708342890820711111L, - 8844501223821777366L, - -1459359143442302680L, - 2225439088478089068L, - -3866259492807347627L, - 5715020051188773955L, - 3922300588924895992L, - -9142841818158905228L, - 2234845285375211931L, - 2466598091809457099L, - -5086614780930363190L, - -59740786891006359L, - 3484340182077240897L, - 5684798394905475931L, - 8492255409537329167L, - 5276601975076232447L, - -723955912320185993L, - 9032937149732310432L, - 2226206333274026280L, - 5631303328800272036L, - 3943832708526382713L, - -3756282686478033644L, - -5407377327559185078L, - 2025162219823732106L, - -8802502232162774782L, - 9039368856081455195L, - 663058667658971174L, - 3624269418844967319L, - 1835338408542062149L, - 6821836507221295281L, - 6273547355770435776L, - -3104373869480308814L, - 1150888014781722836L, - 7638478751521711777L, - -6407096352658729423L, - -2242514077180426481L, - -3181824045541296523L, - -4562287221569080073L, - -5550768647534615669L, - -5786611484859469238L, - -6147722345444149090L, - 3737249616177808079L, - 3401215612108618403L, - -713522925214097648L, - 7938558781452631257L, - -2822931074351003413L, - -6484774850345918944L, - 3384659068511379086L, - 6976459554734427695L, - 4254162229878558339L, - -3312164339867139602L, - 7263045146222903358L, - 4561625003713187235L, - -3350421200373539593L, - -6329267008823047447L, - -6889593333717619051L, - -6470291206680780949L, - -1925391510610223335L, - 4955720513801530785L, - -6515999401129420095L, - -5146900596178823847L, - 2572121582663686783L, - -4958678197003031937L, - -1295912792184970105L, - -8320363273488883198L, - -8213501149234986129L, - -3883775881968950160L, - -8925953418077243474L, - 3199784299548492168L, - -6836506744583692202L, - -5007347279129330642L, - 7387675960164975441L, - -5841389805259238070L, - 6263589037534776610L, - 3327727201189139791L, - 3673450414312153409L, - -1563909967243907088L, - -3758518049401683145L, - 6368282934319908146L, - -6025191831649813215L, - 1223512633484628943L, - -8540335264335924099L, - -8569704496403127098L, - -5712355262561236939L, - -6468621715016340600L, - 7015005898276272746L, - -1037164971883038884L, - -6108649908647520338L, - -6781540054819591698L, - -2762739023866345855L, - -270930832663123436L, - -2387080926579956105L, - -3984603512651136889L, - 2367015942733558542L, - 2997123688964990405L, - -424413420483149165L, - 2906467516125124288L, - 7979917630945955701L, - 2879736983084566817L, - 558436267366797870L, - 6471658168855475843L, - -3453803644372811678L, - 95470628886709014L, - 5666911245054448862L, - 1594133734978640945L, - 3790246368687946045L, - 8636400206261643605L, - 5901994795106283147L, - -6774812279971490610L, - -4622588246534854941L, - 5395884908872287278L, - 7381412950348018556L, - 5461775216423433041L, - 2851500852422732203L, - 1153428834012773824L, - 2567326223464897798L, - 6290362916558214218L, - 6095765709335097474L, - -3526424734043456674L, - -8411274175041022530L, - 7565408328520233290L, - -1318636864706103626L, - 1261242784453012654L, - -472643963000448611L, - -7126293899612852456L, - 5072187962931197668L, - 4775251504230927816L, - -1624676500499667689L, - 2252385971292411863L, - 7908437759266752884L, - -8948829914565397845L, - 5258787823809553293L, - 3885696202809019506L, - -4551784314460062669L, - 5315762970089305011L, - 7218180419200466576L, - 109471822471146966L, - 3901499100759315793L, - -5613018173558603696L, - 5782419706003468119L, - 8285176821902721729L, - -2944182278904878473L, - 8089487615165958290L, - 6934039118340963316L, - 8481603619533191729L, - -6321491167299496492L, - 6441589800192421521L, - 6436057639713571196L, - 6819921695214365155L, - 1185928916708893611L, - 2597068862418243401L, - -7637601550649263782L, - 9129303862479379164L, - 4047905726243458335L, - 6672087858539795207L, - -4841432774404255351L, - 5501215987763227677L, - -5300305896512100453L, - 1635946349436492617L, - -5017459781050596604L, - -7313558338536196566L, - 4625509831332846264L, - -1241826701278444028L, - 2916178164108211239L, - -6947453283344846915L, - 5520544791845620925L, - 5009241392834567026L, - -630825152277572403L, - 6246654103747517292L, - -5632205909016659384L, - -5099826214945383802L, - 2466330894206710401L, - -1463559257726812272L, - 4922422449110036517L, - -4940410396057186660L, - 8835766963654337957L, - -1984334093384497740L, - 5616151800825184227L, - -8442970605804311782L, - -5396399970392474268L, - 2711274356126287353L, - -5090439840321959043L, - 6638617029380445409L, - -6424875729377006548L, - -7243574969986334324L, - -904268348341193502L, - -6196811069886893217L, - -7742123331454617135L, - 1449632469607275832L, - 3212140938119717436L, - 8676942774083692265L, - -6625590425417154859L, - 8720904664575676760L, - 9151723732605931383L, - 7642401923610349184L, - -3454390566366389884L, - -232373658792783206L, - -8933620623437682010L, - 2514068248201398743L, - 6757007617821370359L, - -2870340646674679163L, - 416331333845426881L, - -5319172016123138702L, - 3294412564645954555L, - 2812538484970453169L, - -9128349093860081905L, - 6784456254618976198L, - -2861881330654872638L, - 3912429093271518508L, - -2562542119887175820L, - 4835616088583228965L, - 427639171891209425L, - 2590582080178010045L, - -6288067880951692635L, - -3204510905067065501L, - 9008426291442999873L, - -4085962609397876083L, - -3786041297813905157L, - -6006475053574578261L, - -6174022276199807178L, - 7958957647277035097L, - 2915785807118517755L, - 2139592530283433011L, - -8562048562533248017L, - -4991735207930685025L, - 393144860250454082L, - -5852177196425420458L, - -2652303154023739579L, - 2079679586901234739L, - -1386526064824772584L, - 1574420554361329695L, - -855542130447493508L, - 8291940350733154044L, - -5330200233059892402L, - 5140782607921164290L, - -977254437067235218L, - -261520846651909307L, - -7369143208070837455L, - -4728766390712852111L, - -8572213434879266955L, - -6754813768712497692L, - 7946121307356573089L, - 504268959085012646L, - -5536654029698676818L, - -6021520522792328781L, - 6968613512520500871L, - 4029920623217569312L, - 2738878342460920492L, - 4562432005481165726L, - -1279037845195368028L, - 1746645308450474697L, - 2538150989161378915L, - 2012299649948738944L, - -3997559675475377347L, - -5939431505669672858L, - 2077103722387383456L, - -6188261335534632204L, - 8772504603740967633L, - -1653698997940568281L, - 1676948989756529271L, - 2377579815165102226L, - -2667481192445387240L, - -5498860615033631762L, - -2490865541169744469L, - -1233441883399707566L, - 5445263795307566596L, - 2288458809413275798L, - -5908274826918996877L, - 2909363406069168415L, - 2376032171261335687L, - -5215189045919902574L, - -6083327007632847329L, - 2462785604224107327L, - -6684045035730714275L, - 2409356208468676804L, - 2814747114160772803L, - -4529204412661254980L, - -8437511853472556883L, - 1819323657613892915L, - 6862685309651627151L, - -9210337863564319258L, - -3641041551811494963L, - -6791020794026796740L, - -5261661996953805298L, - -1953516254626596632L, - -5901591005960707793L, - -7413695905040596911L, - 2952256922297384020L, - -8427771021447591769L, - -6920139339436245233L, - 2967149838604559395L, - -3253499104068010353L, - -8473804925120692039L, - -3561285603521886085L, - -4453849179065102447L, - 2050092642498054323L, - -5626434133619314199L, - 7995075368278704248L, - 7685996432951370136L, - -8037783900933102779L, - 4601459625295412851L, - -4491938778497306775L, - -9089886217821142309L, - -3947191644612298897L, - 1364225714229764884L, - 2580394324892542249L, - -3765315378396862242L, - 6023794482194323576L, - -662753714084561214L, - 3080495347149127717L, - 911710215008202776L, - -803705685664586056L, - -6101059689379533503L, - -2122356322512227634L, - 8012110874513406695L, - -4158551223425336367L, - 8282080141813519654L, - 4172879384244246799L, - 708522065347490110L, - -6997269001146828181L, - 1887955086977822594L, - 8014460039616323415L + -1205034819632174695L, + -1642502924627794072L, + 5216751715308240086L, + -1889335612763511331L, + -13835840860730338L, + -2521325055659080948L, + 4867868962443297827L, + 1498682999415010002L, + -8626056615231480947L, + 7482827008138251355L, + -617731006306969209L, + 7289733825183505098L, + 4776896707697368229L, + 1428059224718910376L, + 6690813482653982021L, + -6248474067697161171L, + 4951407828574235127L, + 6198050452789369270L, + 5776283192552877204L, + -626480755095427154L, + -6637184445929957204L, + 8370873622748562952L, + -1705978583731280501L, + -7898818752540221055L, + -2516210193198301541L, + 8356900479849653862L, + -4413748141896466000L, + -6040072975510680789L, + 1451490609699316991L, + -7948005844616396060L, + 8567048088357095527L, + -4375578310507393311L, + -3749919242623962444L, + 888155921178136237L, + -228195649085979072L, + -521095004075279741L, + -2458702038214709156L, + -2792334161285995319L, + 7509323632532862410L, + 46046374822258777L, + -731200582691896855L, + 933917387460394992L, + 5623144551929396680L, + 6456984547425914359L, + -6398540474588876142L, + 1224372500617079775L, + -931727396974525131L, + 979677643219401656L, + -8078270932489049756L, + -92767506898879473L, + 2379112167176776082L, + 2065719310945572007L, + -4972682801816081667L, + -7346559332994187462L, + 4674729779638751546L, + 5844780159702313017L, + 925606237565008152L, + 8164325403643669774L, + 5124005065773312983L, + -4646462236086916483L, + 4733593776494364101L, + -6408850806317360L, + 7405089268865026700L, + -2131704682637193649L, + -592659849139514384L, + -4386868621773355429L, + -2216833672566288862L, + 4022619316305276641L, + -60464713570988944L, + 2416749694506796597L, + 3576590985110933976L, + 3368688771415645536L, + -357157638897078259L, + 3484358739758473117L, + 2078888409435083535L, + 8053093288416703076L, + -4934736471585554038L, + -7784370683223414061L, + -4109284735634941390L, + 5982490102027564625L, + -4991107002810882893L, + 8664747912276562373L, + 8536879438728327651L, + 2358675440174594061L, + 5352236919104495867L, + 6340852522718110192L, + 5075606340464035668L, + -6313168920073458239L, + -6428599582591385786L, + -7278654800402467208L, + -6630626099856243581L, + -7548742438664634646L, + 5514383762309532642L, + -5996126265702944431L, + 4011116741319319261L, + -7289240093981845088L, + 4975257207486779926L, + -3945500877932691916L, + 1973955144068521079L, + 3884425912161913184L, + 7692681977284421015L, + -1616730378439673826L, + 4799493270916844476L, + -6107310582897997679L, + 3643294092300179537L, + 5406040598516899149L, + -3032420409304067208L, + 5044227119457305622L, + 9165032773225506149L, + 7553488247682850248L, + 2247298339072845043L, + 7380491470304042584L, + -456791943260357427L, + -1906500292613319324L, + -4025157985304129897L, + 6167829983725509611L, + -8678196943431064825L, + -636391087313417831L, + 5757999497725839182L, + 8999325347316115948L, + -6042339776328081249L, + 7988836354190359013L, + 2818448030979902104L, + -8484201484113382447L, + -1140175406473847155L, + 3042776987426497381L, + 3147338037480432386L, + 5065714330193756569L, + 8827021486636772242L, + 838335823706922959L, + 481844220820054909L, + 5333474685474667077L, + -3722898251196013565L, + 7909417627390150381L, + 7116148225996109646L, + 7520381989775811302L, + 6045444672904719015L, + 169039646730338133L, + -2144629916252757106L, + -3752608501798118554L, + 8374704774878780935L, + -5830926781667225570L, + 3202139393110256022L, + 4400219135677717216L, + -5663710220155589201L, + -2589002340345751622L, + -8240133511464343390L, + -4036798392879835146L, + 501599054729008501L, + -4851415719238782188L, + 7565157933617774080L, + -6428091359957700043L, + 4081845077806300175L, + -9016659258880122392L, + 7811786097015457596L, + 1357606791019752376L, + 6522211979684949668L, + -3462397075047559451L, + 3075504459164148117L, + 3055992297861390732L, + -7230492327399411047L, + -1128103378253532506L, + 1834607408788151585L, + 7065978976369231860L, + 6566122632438908362L, + -3440855531356735824L, + 6271453770746181891L, + 413365468403580071L, + -8342682158827061522L, + -3713303136987568731L, + -8959326895824091541L, + -2793862582117663595L, + -184756427409317729L, + -7052502019782453427L, + 3666196071825438258L, + 170204095295428634L, + -1880693509859077843L, + 5179169206996749826L, + 2866097700453114958L, + 1859104195026275510L, + 3782323564639128125L, + -6485194456269981193L, + 6761934873296236857L, + 5764605515941066448L, + 597754945258033208L, + -4888986062036739232L, + -6490228233091577705L, + 3234089784845854336L, + -5506883591180767430L, + 1491493862343818933L, + 3232293217886687768L, + -4079803366160739972L, + 4884134040093556099L, + -7274733680156962461L, + 5265680254123454403L, + 1036855740788018258L, + 423439784169709263L, + -3627743032115866622L, + -6311378083791982305L, + -3058076915688265687L, + 5826550132901840796L, + 8049712006832885455L, + 1707844692241288946L, + -3293048440386932248L, + -2458638193238955307L, + 943059295184967928L, + 3899561579431348819L, + -1516862862245909493L, + 4448476568037673976L, + 8738531437146688925L, + -1033913449611929894L, + 733668166271378558L, + 438686375775205249L, + -4325889118346169305L, + -238178883117433622L, + -7972205050662019794L, + -1263398103237492853L, + -8333197763892905802L, + 7796341294364809534L, + -1381767618016537445L, + 2892579485651013970L, + -3376209887503828920L, + -8575120126045607817L, + -1609355362031172055L, + -386138918275547508L, + 4598874691849543747L, + -2961781601824749597L, + -3032925351997820092L, + -4256249198066449735L, + 6712291718681474012L, + -4281614253751277086L, + 3727487933918100016L, + -2744649548868700294L, + 8662377383917584333L, + -9154398439761221404L, + -6895275824272461794L, + 3394857180017540444L, + 2010825527298793302L, + 4894417464710366872L, + -6879244364314087051L, + 83677167865178033L, + -8258406393927169823L, + 5042126978317943321L, + 6485279223034053259L, + 4442956705009100620L, + 316801800427881731L, + 1381431847939703076L, + 5172932759041399062L, + -69656533526213521L, + -5302643413630076306L, + -3956089084400440856L, + 372087412941022771L, + 4711314482928419386L, + 3255220726505012060L, + 8917854303046844847L, + 1116214654602499731L, + 2282408585429094475L, + -9207590323584417562L, + 8881688165595519866L, + 1731908113181957442L, + 3847295165012256987L, + 4457829016858233661L, + 4944046822375522396L, + 3445091217248591320L, + -5055680960069278553L, + -399195423199498362L, + -8109174165388156886L, + 4967185977968814820L, + -5911973391056763118L, + 2239508324487797550L, + -954783563382788523L, + 8523699184200726144L, + 932575865292832326L, + -7491448407022023047L, + 1809887519026638446L, + -8610524715250756725L, + 6158809695983348998L, + 4948400960714316843L, + -4513370424175692831L, + -3955280856263842959L, + 6440233015885550592L, + 8756942107256956958L, + 7895095834297147376L, + 370033091003609904L, + 948078545203432448L, + -8523229038380945151L, + 100794871657160943L, + -2186420796072284323L, + -9221115378196347951L, + 8102537654803861332L, + 5857339063191690550L, + -4554257374958739421L, + 6607496554818971053L, + -778402196622557070L, + -3817535277727878318L, + 3564122000469288769L, + -44446230828995950L, + 1322708749649533240L, + 6150374672341998205L, + -3300275952549095391L, + 5700833512536085850L, + -8559358370491270937L, + 5434443260519512697L, + -8031025173259990945L, + 7117462129248544172L, + 5425177419943569451L, + -7215427371174054838L, + -5728669976971194528L, + -2096361446095323077L, + -4247416835972286805L, + 4912769047482466787L, + 7755341152739082452L, + 6797061233443658471L, + 4089361562209715474L, + 5830701413838808929L, + 5514515889578551370L, + 609334005368729318L, + 177310574483850759L, + -820431153866372784L, + 7188454041446661654L, + 7480194911613035473L, + 4564607884390103056L, + 888496928954372093L, + -5480535802290619117L, + 9100964700413324707L, + 510523132632789099L, + 8249362675875046694L, + 5340321809639671537L, + -4633081050124361874L, + -839915092967986193L, + -7377542419053401928L, + 1820485955145562839L, + 8517645770425584256L, + -1877318739474090786L, + 7674371564231889244L, + -3311130470964498678L, + -880090321525066135L, + -5670998531776225745L, + -8828737503035152589L, + -6029750416835830307L, + -6535608738168818581L, + -550872341393232043L, + 2831504667559924912L, + -4613341433216920241L, + 502960879991989691L, + 576723875877375776L, + -2575765564594953903L, + -4642144349520453953L, + 7939746291681241029L, + 6486356905694539404L, + -9086235573768687853L, + 5369903658359590823L, + 3199947475395774092L, + 8384948078622146995L, + -3365598033653273878L, + -2525526479099052030L, + 2648498634302427751L, + 3715448294999624219L, + -4734466095330028983L, + -8440427851760401644L, + -371198022355334589L, + 8864079431738600817L, + -4205600060099565684L, + 6617166152874298882L, + -6515522971156180292L, + 7254251246745292298L, + -420587237082849417L, + 1190495815435763349L, + -474540026828753709L, + -8150622114536376016L, + -5790621848044235275L, + -2780522220219318167L, + -2991155855957250848L, + 1692932912262846366L, + 8814949734565782733L, + -8746818869495012552L, + 7931250816026891600L, + -7434629709560596700L, + 4388261932396122996L, + 7154847153195510802L, + -2810154398655124882L, + 2601892684639182965L, + 7781574423676509607L, + -6647000723020388462L, + -8679132292226137672L, + -2447013202020963672L, + 3658855631326217196L, + 2176620921764007759L, + 3654402165357492705L, + 4511989090021652156L, + -3254638803798424003L, + 9050506214967102331L, + 922579360317805810L, + 609820949221381248L, + 5723875594772949290L, + 4637721466210023638L, + 6195303339320487374L, + -38202587086649325L, + -2142927092331878341L, + 5355751314914287101L, + -7170892783575760055L, + -7506612729078573199L, + 8645580445823695595L, + 3221950179890871958L, + 1638211443525398634L, + 7356718304253861777L, + -296260062751271549L, + -1790105985391377345L, + -7004118620405119098L, + 7056012094479909462L, + -7673357898031223798L, + -8929502135696203556L, + 7527161467311997998L, + 6182865571027510002L, + -2163310275402596869L, + 6285112477695252864L, + 3703909999924067987L, + 962491298117560533L, + 138936592567072793L, + 6094857527471100960L, + 5914305068838335718L, + -8896724991235492552L, + -2667562314507789198L, + -7456492499188304500L, + -3422709784851063201L, + -1511644999824238281L, + -7130158069449057322L, + 6243266426571961929L, + 2713895636371672711L, + 5765589573821453640L, + 2624585483746388367L, + 3933828437519859601L, + -5664404238108533781L, + 7086393398544811684L, + 1322058227068490376L, + -8232508114671021371L, + -5963804389649678229L, + -3318229976491806899L, + -6261789542948241754L, + 199130260709663583L, + 7521707465510595039L, + 507353862067534334L, + -7737968456769005928L, + -8964687882992257099L, + -7735003539801528311L, + 6989812739838460574L, + -6986289777499051441L, + 1881562796144865699L, + -6077719780113966592L, + -5427071388091979746L, + 1660707436425817310L, + -4338189980197421104L, + 5330934977599207307L, + 4461280425701571033L, + -7426107478263746863L, + 4258305289832328199L, + -8003283151332860979L, + -2500604212764835216L, + -8883941775298564436L, + -5059709834257638733L, + -4582947579039913741L, + 1371959565630689983L, + -1925163414161391371L, + -1180269729544278896L, + -6603171789097590304L, + 8985062706306079731L, + -3588748723254272836L, + -6052032019910018725L, + 6200960040430493088L, + 2146343936795524980L, + 7785948646708747443L, + 4524411768393719400L, + 749211414228926779L, + -163844243342465015L, + 1066801203344117463L, + -3687825939602944988L, + -4873811917429870500L, + -3765115783578949524L, + 3344884226049804020L, + -22793631121165636L, + -5636541624133159076L, + -6201449576244177151L, + -4533734412127714050L, + -2064657727206266594L, + -1325853623186040989L, + -2651306529045029511L, + 903264360879626406L, + 6082283797495873520L, + 6185446819995987847L, + -5727850940826115079L, + 8356646143516726527L, + -7705915341280821272L, + 9137633133909463406L, + 6613483969797411894L, + 8598514961735984460L, + 6805925079991408361L, + 6009403222422527608L, + 2216303622650116705L, + -3736062178532154638L, + -7139008962939637477L, + -1537711200058404375L, + 8896755073380580322L, + -6063426810787442347L, + -3472064301690015285L, + -4568131486464952371L, + -8141256104294687045L, + 5627435360893599536L, + 1136003802967708029L, + 2730027518034735037L, + 1985287040172139729L, + -3643431491383365431L, + -9042919736106376701L, + 8879968900590373568L, + 8504486139877409399L, + 5832665747670146536L, + 4202923651402292496L, + 1738511892080946286L, + 4512683881549777042L, + 9200194457599870145L, + -1948301178705617139L, + 8655715314401162523L, + 412698981651521600L, + -1479274044808688580L, + 2688302549664693359L, + -3059920027366623178L, + -4275753325231806565L, + -8321791698013769889L, + -3678119714812414102L, + -2500922551770832553L, + 9018541633115002061L, + 5713301371152396803L, + 4180584812840471799L, + 3062416401091271879L, + -8125716681035757962L, + -2076056159878596225L, + 8855540523533374738L, + 2402007906402689092L, + 2020584786288649542L, + 1707405964421070701L, + -3681994462249973122L, + -3982567775984742012L, + 7133200226358561844L, + -5270514263562558963L, + 9060760368219219429L, + -6967162372382490281L, + -9094664463528453384L, + -3968518633408880046L, + 8618660189330281694L, + -4668946581954397558L, + -8596433172676363407L, + -1264942061713169049L, + -5309493221793643795L, + -1099320768477039529L, + 8925041285873295227L, + -6809278181760513499L, + -7039439984223885585L, + 6188209901527865226L, + 1487353394192637059L, + 2402097349430126337L, + -3818359601525025681L, + 4123217079279439249L, + -1424515143377220376L, + 1742298536803356877L, + -2836832784751148874L, + -4838603242771410698L, + 2383745618623084414L, + -2790832243316548423L, + -1176683649587660160L, + 1862928178605117401L, + 5208694030074527671L, + 4339841406618876548L, + -7704801448691668472L, + 500068664415229033L, + -2111184635274274347L, + -1387769336519960517L, + -2368660677263980293L, + -4980481392402938776L, + -6856361166068680884L, + 1708658704968066797L, + -9013068514618931938L, + -2616479975851677179L, + 7121103440247327570L, + -7094192881960646061L, + -4042342930006488618L, + 5294323611741266775L, + 5235545113690922502L, + -2562011392475214878L, + -4613304566070234734L, + -3784386310583029381L, + -4526148219816534267L, + -8643470129031767968L, + -4573761335510927866L, + -8255399593563317902L, + -1925488377092111963L, + -1747797357090594237L, + 7292772921748919564L, + 3951718848780851600L, + 5339305877764077075L, + 7889570407201305102L, + -8935437555550449315L, + -1858205318388884024L, + 381779657795494278L, + -3769854251228686168L, + -7957724087073627355L, + 4349540075286824743L, + -2476434494603040708L, + -4506107235113109706L, + -7120863144673563848L, + -8534342596639587598L, + 2205658724629050493L, + 604438195864305027L, + 4530331938860561927L, + -2074141653226683751L, + -1114378227875974007L, + 3377301950002508302L, + 5369356700690664306L, + -1747063224581819445L, + -6320380781966280801L, + -2075443262555773155L, + 1028541493355576591L, + -4694402890123574860L, + -5250660999767019003L, + 3847087895315315136L, + -4448050214964317066L, + -4591316307978008151L, + 4894820902772635901L, + 3088847887353411593L, + -6699208183127463352L, + 4636731998354510780L, + 9095126525233209263L, + 4135373626035182291L, + 3835688804093949701L, + -3490782692819028324L, + -561453348486424761L, + -3329283619698366365L, + 3251154327320814221L, + -8006986328190314286L, + 5856651505286251345L, + -8871425101391073L, + 7806993676637210959L, + 7586479850833664643L, + -7091216108599847229L, + -3410137297792125447L, + -8251963871271100526L, + -8849730915506517177L, + 8400334327557485676L, + 1676125861848906502L, + -8480324002538122254L, + -1402216371589796114L, + 5951911012328622382L, + 8596811512609928773L, + -2266336480397111285L, + -8840962712683931463L, + 4301675602445909557L, + 1843369157327547440L, + 2169755460218905712L, + -1592865257954325910L, + -8763867324602133653L, + -4283855559993550994L, + -7577702976577664015L, + -5152834259238990784L, + 4596243922610406362L, + -4326545138850544854L, + 1480440096894990716L, + 8548031958586152418L, + 6705615952497668303L, + -2915454802887967935L, + -6137002913510169520L, + 2908515186908319288L, + 5834242853393037250L, + -6721431559266056630L, + -7810820823419696676L, + 1954209413716096740L, + 6657013078387802473L, + 2214178984740031680L, + 8789512881373922013L, + 1240231669311237626L, + 8694612319028097761L, + 492180561068515854L, + -6047127535609489112L, + 7436686740711762797L, + -4520261623507558716L, + 938282189116272147L, + 3232025564608101134L, + -5425498066931840551L, + 932123105892452494L, + 9054941090932531526L, + 8066693670021084601L, + 764877609198828864L, + -489112437588815338L, + 4827691353685521957L, + 1948321254606741278L, + 6117773063719937712L, + 4645962658121906639L, + -7846887104148029590L, + 4210795945791252618L, + -8879516722990993098L, + -2621063563373927241L, + 2094675051444850863L, + -8681225697045319537L, + 6072534474938492189L, + 6181923696407824226L, + 5463607676777614919L, + 3708342890820711111L, + 8844501223821777366L, + -1459359143442302680L, + 2225439088478089068L, + -3866259492807347627L, + 5715020051188773955L, + 3922300588924895992L, + -9142841818158905228L, + 2234845285375211931L, + 2466598091809457099L, + -5086614780930363190L, + -59740786891006359L, + 3484340182077240897L, + 5684798394905475931L, + 8492255409537329167L, + 5276601975076232447L, + -723955912320185993L, + 9032937149732310432L, + 2226206333274026280L, + 5631303328800272036L, + 3943832708526382713L, + -3756282686478033644L, + -5407377327559185078L, + 2025162219823732106L, + -8802502232162774782L, + 9039368856081455195L, + 663058667658971174L, + 3624269418844967319L, + 1835338408542062149L, + 6821836507221295281L, + 6273547355770435776L, + -3104373869480308814L, + 1150888014781722836L, + 7638478751521711777L, + -6407096352658729423L, + -2242514077180426481L, + -3181824045541296523L, + -4562287221569080073L, + -5550768647534615669L, + -5786611484859469238L, + -6147722345444149090L, + 3737249616177808079L, + 3401215612108618403L, + -713522925214097648L, + 7938558781452631257L, + -2822931074351003413L, + -6484774850345918944L, + 3384659068511379086L, + 6976459554734427695L, + 4254162229878558339L, + -3312164339867139602L, + 7263045146222903358L, + 4561625003713187235L, + -3350421200373539593L, + -6329267008823047447L, + -6889593333717619051L, + -6470291206680780949L, + -1925391510610223335L, + 4955720513801530785L, + -6515999401129420095L, + -5146900596178823847L, + 2572121582663686783L, + -4958678197003031937L, + -1295912792184970105L, + -8320363273488883198L, + -8213501149234986129L, + -3883775881968950160L, + -8925953418077243474L, + 3199784299548492168L, + -6836506744583692202L, + -5007347279129330642L, + 7387675960164975441L, + -5841389805259238070L, + 6263589037534776610L, + 3327727201189139791L, + 3673450414312153409L, + -1563909967243907088L, + -3758518049401683145L, + 6368282934319908146L, + -6025191831649813215L, + 1223512633484628943L, + -8540335264335924099L, + -8569704496403127098L, + -5712355262561236939L, + -6468621715016340600L, + 7015005898276272746L, + -1037164971883038884L, + -6108649908647520338L, + -6781540054819591698L, + -2762739023866345855L, + -270930832663123436L, + -2387080926579956105L, + -3984603512651136889L, + 2367015942733558542L, + 2997123688964990405L, + -424413420483149165L, + 2906467516125124288L, + 7979917630945955701L, + 2879736983084566817L, + 558436267366797870L, + 6471658168855475843L, + -3453803644372811678L, + 95470628886709014L, + 5666911245054448862L, + 1594133734978640945L, + 3790246368687946045L, + 8636400206261643605L, + 5901994795106283147L, + -6774812279971490610L, + -4622588246534854941L, + 5395884908872287278L, + 7381412950348018556L, + 5461775216423433041L, + 2851500852422732203L, + 1153428834012773824L, + 2567326223464897798L, + 6290362916558214218L, + 6095765709335097474L, + -3526424734043456674L, + -8411274175041022530L, + 7565408328520233290L, + -1318636864706103626L, + 1261242784453012654L, + -472643963000448611L, + -7126293899612852456L, + 5072187962931197668L, + 4775251504230927816L, + -1624676500499667689L, + 2252385971292411863L, + 7908437759266752884L, + -8948829914565397845L, + 5258787823809553293L, + 3885696202809019506L, + -4551784314460062669L, + 5315762970089305011L, + 7218180419200466576L, + 109471822471146966L, + 3901499100759315793L, + -5613018173558603696L, + 5782419706003468119L, + 8285176821902721729L, + -2944182278904878473L, + 8089487615165958290L, + 6934039118340963316L, + 8481603619533191729L, + -6321491167299496492L, + 6441589800192421521L, + 6436057639713571196L, + 6819921695214365155L, + 1185928916708893611L, + 2597068862418243401L, + -7637601550649263782L, + 9129303862479379164L, + 4047905726243458335L, + 6672087858539795207L, + -4841432774404255351L, + 5501215987763227677L, + -5300305896512100453L, + 1635946349436492617L, + -5017459781050596604L, + -7313558338536196566L, + 4625509831332846264L, + -1241826701278444028L, + 2916178164108211239L, + -6947453283344846915L, + 5520544791845620925L, + 5009241392834567026L, + -630825152277572403L, + 6246654103747517292L, + -5632205909016659384L, + -5099826214945383802L, + 2466330894206710401L, + -1463559257726812272L, + 4922422449110036517L, + -4940410396057186660L, + 8835766963654337957L, + -1984334093384497740L, + 5616151800825184227L, + -8442970605804311782L, + -5396399970392474268L, + 2711274356126287353L, + -5090439840321959043L, + 6638617029380445409L, + -6424875729377006548L, + -7243574969986334324L, + -904268348341193502L, + -6196811069886893217L, + -7742123331454617135L, + 1449632469607275832L, + 3212140938119717436L, + 8676942774083692265L, + -6625590425417154859L, + 8720904664575676760L, + 9151723732605931383L, + 7642401923610349184L, + -3454390566366389884L, + -232373658792783206L, + -8933620623437682010L, + 2514068248201398743L, + 6757007617821370359L, + -2870340646674679163L, + 416331333845426881L, + -5319172016123138702L, + 3294412564645954555L, + 2812538484970453169L, + -9128349093860081905L, + 6784456254618976198L, + -2861881330654872638L, + 3912429093271518508L, + -2562542119887175820L, + 4835616088583228965L, + 427639171891209425L, + 2590582080178010045L, + -6288067880951692635L, + -3204510905067065501L, + 9008426291442999873L, + -4085962609397876083L, + -3786041297813905157L, + -6006475053574578261L, + -6174022276199807178L, + 7958957647277035097L, + 2915785807118517755L, + 2139592530283433011L, + -8562048562533248017L, + -4991735207930685025L, + 393144860250454082L, + -5852177196425420458L, + -2652303154023739579L, + 2079679586901234739L, + -1386526064824772584L, + 1574420554361329695L, + -855542130447493508L, + 8291940350733154044L, + -5330200233059892402L, + 5140782607921164290L, + -977254437067235218L, + -261520846651909307L, + -7369143208070837455L, + -4728766390712852111L, + -8572213434879266955L, + -6754813768712497692L, + 7946121307356573089L, + 504268959085012646L, + -5536654029698676818L, + -6021520522792328781L, + 6968613512520500871L, + 4029920623217569312L, + 2738878342460920492L, + 4562432005481165726L, + -1279037845195368028L, + 1746645308450474697L, + 2538150989161378915L, + 2012299649948738944L, + -3997559675475377347L, + -5939431505669672858L, + 2077103722387383456L, + -6188261335534632204L, + 8772504603740967633L, + -1653698997940568281L, + 1676948989756529271L, + 2377579815165102226L, + -2667481192445387240L, + -5498860615033631762L, + -2490865541169744469L, + -1233441883399707566L, + 5445263795307566596L, + 2288458809413275798L, + -5908274826918996877L, + 2909363406069168415L, + 2376032171261335687L, + -5215189045919902574L, + -6083327007632847329L, + 2462785604224107327L, + -6684045035730714275L, + 2409356208468676804L, + 2814747114160772803L, + -4529204412661254980L, + -8437511853472556883L, + 1819323657613892915L, + 6862685309651627151L, + -9210337863564319258L, + -3641041551811494963L, + -6791020794026796740L, + -5261661996953805298L, + -1953516254626596632L, + -5901591005960707793L, + -7413695905040596911L, + 2952256922297384020L, + -8427771021447591769L, + -6920139339436245233L, + 2967149838604559395L, + -3253499104068010353L, + -8473804925120692039L, + -3561285603521886085L, + -4453849179065102447L, + 2050092642498054323L, + -5626434133619314199L, + 7995075368278704248L, + 7685996432951370136L, + -8037783900933102779L, + 4601459625295412851L, + -4491938778497306775L, + -9089886217821142309L, + -3947191644612298897L, + 1364225714229764884L, + 2580394324892542249L, + -3765315378396862242L, + 6023794482194323576L, + -662753714084561214L, + 3080495347149127717L, + 911710215008202776L, + -803705685664586056L, + -6101059689379533503L, + -2122356322512227634L, + 8012110874513406695L, + -4158551223425336367L, + 8282080141813519654L, + 4172879384244246799L, + 708522065347490110L, + -6997269001146828181L, + 1887955086977822594L, + 8014460039616323415L }; public static final long[] HASHES_OF_LOOPING_BYTES_WITH_SEED_42 = { - -7444071767201028348L, - -8959994473701255385L, - 7116559933691734543L, - 6019482000716350659L, - -6625277557348586272L, - -5507563483608914162L, - 1540412690865189709L, - 4522324563441226749L, - -7143238906056518746L, - -7989831429045113014L, - -7103973673268129917L, - -2319060423616348937L, - -7576144055863289344L, - -8903544572546912743L, - 6376815151655939880L, - 5913754614426879871L, - 6466567997237536608L, - -869838547529805462L, - -2416009472486582019L, - -3059673981515537339L, - 4211239092494362041L, - 1414635639471257331L, - 166863084165354636L, - -3761330575439628223L, - 3524931906845391329L, - 6070229753198168844L, - -3740381894759773016L, - -1268276809699008557L, - 1518581707938531581L, - 7988048690914090770L, - -4510281763783422346L, - -8988936099728967847L, - -8644129751861931918L, - 2046936095001747419L, - 339737284852751748L, - -8493525091666023417L, - -3962890767051635164L, - -5799948707353228709L, - -6503577434416464161L, - 7718729912902936653L, - 191197390694726650L, - -2677870679247057207L, - 20411540801847004L, - 2738354376741059902L, - -3754251900675510347L, - -3208495075154651980L, - 5505877218642938179L, - 6710910171520780908L, - -9060809096139575515L, - 6936438027860748388L, - -6675099569841255629L, - -5358120966884144380L, - -4970515091611332076L, - -1810965683604454696L, - -516197887510505242L, - 1240864593087756274L, - 6033499571835033332L, - 7223146028771530185L, - 909128106589125206L, - 1567720774747329341L, - -1867353301780159863L, - 4655107429511759333L, - 5356891185236995950L, - 182631115370802890L, - -3582744155969569138L, - 595148673029792797L, - 495183136068540256L, - 5536689004903505647L, - -8472683670935785889L, - -4335021702965928166L, - 7306662983232020244L, - 4285260837125010956L, - 8288813008819191181L, - -3442351913745287612L, - 4883297703151707194L, - 9135546183059994964L, - 123663780425483012L, - 509606241253238381L, - 5940344208569311369L, - -2650142344608291176L, - 3232776678942440459L, - -922581627593772181L, - 7617977317085633049L, - 7154902266379028518L, - -5806388675416795571L, - 4368003766009575737L, - -2922716024457242064L, - 4771160713173250118L, - 3275897444752647349L, - -297220751499763878L, - 5095659287766176401L, - 1181843887132908826L, - 9058283605301070357L, - 3984713963471276643L, - 6050484112980480005L, - 1551535065359244224L, - 565337293533335618L, - 7412521035272884309L, - -4735469481351389369L, - 6998597101178745656L, - -9107075101236275961L, - 5879828914430779796L, - 6034964979406620806L, - 5666406915264701514L, - -4666218379625258428L, - 2749972203764815656L, - -782986256139071446L, - 6830581400521008570L, - 2588852022632995043L, - -5484725487363818922L, - -3319556935687817112L, - 6481961252981840893L, - 2204492445852963006L, - -5301091763401031066L, - -2615065677047206256L, - -6769817545131782460L, - -8421640685322953142L, - -3669062629317949176L, - -9167016978640750490L, - 2783671191687959562L, - -7599469568522039782L, - -7589134103255480011L, - -5932706841188717592L, - -8689756354284562694L, - -3934347391198581249L, - -1344748563236040701L, - 2172701592984478834L, - -5322052340624064417L, - -8493945390573620511L, - 3349021988137788403L, - -1806262525300459538L, - -8091524448239736618L, - 4022306289903960690L, - -8346915997379834224L, - -2106001381993805461L, - -5784123934724688161L, - 6775158099649720388L, - -3869682756870293568L, - 4356490186652082006L, - 8469371446702290916L, - -2972961082318458602L, - -7188106622222784561L, - -4961006366631572412L, - 3199991182014172900L, - 2917435868590434179L, - 8385845305547872127L, - 7706824402560674655L, - -1587379863634865277L, - -4212156212298809650L, - -1305209322000720233L, - -7866728337506665880L, - 8195089740529247049L, - -4876930125798534239L, - 798222697981617129L, - -2441020897729372845L, - -3926158482651178666L, - -1254795122048514130L, - 5192463866522217407L, - -5426289318796042964L, - -3267454004443530826L, - 471043133625225785L, - -660956397365869974L, - -6149209189144999161L, - -2630977660039166559L, - 8512219789663151219L, - -3309844068134074620L, - -6211275327487847132L, - -2130171729366885995L, - 6569302074205462321L, - 4855778342281619706L, - 3867211421508653033L, - -3002480002418725542L, - -8297543107467502696L, - 8049642289208775831L, - -5439825716055425635L, - 7251760070798756432L, - -4774526021749797528L, - -3892389575184442548L, - 5162451061244344424L, - 6000530226398686578L, - -5713092252241819676L, - 8740913206879606081L, - -8693282419677309723L, - 1576205127972543824L, - 5760354502610401246L, - 3173225529903529385L, - 1785166236732849743L, - -1024443476832068882L, - -7389053248306187459L, - 1171021620017782166L, - 1471572212217428724L, - 7720766400407679932L, - -8844781213239282804L, - -7030159830170200877L, - 2195066352895261150L, - 1343620937208608634L, - 9178233160016731645L, - -757883447602665223L, - 3303032934975960867L, - -3685775162104101116L, - -4454903657585596656L, - -5721532367620482629L, - 8453227136542829644L, - 5397498317904798888L, - 7820279586106842836L, - -2369852356421022546L, - 3910437403657116169L, - 6072677490463894877L, - -2651044781586183960L, - 5173762670440434510L, - -2970017317595590978L, - -1024698859439768763L, - -3098335260967738522L, - -1983156467650050768L, - -8132353894276010246L, - -1088647368768943835L, - -3942884234250555927L, - 7169967005748210436L, - 2870913702735953746L, - -2207022373847083021L, - 1104181306093040609L, - 5026420573696578749L, - -5874879996794598513L, - -4777071762424874671L, - -7506667858329720470L, - -2926679936584725232L, - -5530649174168373609L, - 5282408526788020384L, - 3589529249264153135L, - -6220724706210580398L, - -7141769650716479812L, - 5142537361821482047L, - -7029808662366864423L, - -6593520217660744466L, - 1454581737122410695L, - -139542971769349865L, - 1727752089112067235L, - -775001449688420017L, - -5011311035350652032L, - -8671171179275033159L, - -2850915129917664667L, - -5258897903906998781L, - -6954153088230718761L, - -4070351752166223959L, - -6902592976462171099L, - -7850366369290661391L, - -4562443925864904705L, - 3186922928616271015L, - 2208521081203400591L, - -2727824999830592777L, - -3817861137262331295L, - 2236720618756809066L, - -4888946967413746075L, - -446884183491477687L, - -43021963625359034L, - -5857689226703189898L, - -2156533592262354883L, - -2027655907961967077L, - 7151844076490292500L, - -5029149124756905464L, - 526404452686156976L, - 8741076980297445408L, - 7962851518384256467L, - -105985852299572102L, - -2614605270539434398L, - -8265006689379110448L, - 8158561071761524496L, - -6923530157382047308L, - 5551949335037580397L, - 565709346370307061L, - -4780869469938333359L, - 6931895917517004830L, - 565234767538051407L, - -8663136372880869656L, - 1427340323685448983L, - 6492705666640232290L, - 1481585578088475369L, - -1712711110946325531L, - 3281685342714380741L, - 6441384790483098576L, - -1073539554682358394L, - 5704050067194788964L, - -5495724689443043319L, - -5425043165837577535L, - 8349736730194941321L, - -4123620508872850061L, - 4687874980541143573L, - -468891940172550975L, - -3212254545038049829L, - -6830802881920725628L, - 9033050533972480988L, - 4204031879107709260L, - -677513987701096310L, - -3286978557209370155L, - 1644111582609113135L, - 2040089403280131741L, - 3323690950628902653L, - -7686964480987925756L, - -4664519769497402737L, - 3358384147145476542L, - -4699919744264452277L, - -4795197464927839170L, - 5051607253379734527L, - -8987703459734976898L, - 8993686795574431834L, - -2688919474688811047L, - 375938183536293311L, - 1049459889197081920L, - -1213022037395838295L, - 4932989235110984138L, - -6647247877090282452L, - -7698817539128166242L, - -3264029336002462659L, - 6487828018122309795L, - -2660821091484592878L, - 7104391069028909121L, - -1765840012354703384L, - 85428166783788931L, - -6732726318028261938L, - 7566202549055682933L, - 229664898114413280L, - -1474237851782211353L, - -1571058880058007603L, - -7926453582850712144L, - 2487148368914275243L, - 8740031015380673473L, - 1908345726881363169L, - -2510061320536523178L, - 7854780026906019630L, - -6023415596650016493L, - -6264841978089051107L, - 4024998278016087488L, - -4266288992025826072L, - -3222176619422665563L, - -1999258726038299316L, - 1715270077442385636L, - 6764658837948099754L, - -8646962299105812577L, - -51484064212171546L, - -1482515279051057493L, - -8663965522608868414L, - -256555202123523670L, - 1973279596140303801L, - -7280796173024508575L, - -5691760367231354704L, - -5915786562256300861L, - -3697715074906156565L, - 3710290115318541949L, - 6796151623958134374L, - -935299482515386356L, - -7078378973978660385L, - 5379481350768846927L, - -9011221735308556302L, - 5936568631579608418L, - -6060732654964511813L, - -4243141607840017809L, - 3198488845875349355L, - -7809288876010447646L, - 4371587872421472389L, - -1304197371105522943L, - 7389861473143460103L, - -1892352887992004024L, - 2214828764044713398L, - 6347546952883613388L, - 1275694314105480954L, - -5262663163358903733L, - 1524757505892047607L, - 1474285098416162746L, - -7976447341881911786L, - 4014100291977623265L, - 8994982266451461043L, - -7737118961020539453L, - -2303955536994331092L, - 1383016539349937136L, - 1771516393548245271L, - -5441914919967503849L, - 5449813464890411403L, - -3321280356474552496L, - 4084073849712624363L, - 4290039323210935932L, - 2449523715173349652L, - 7494827882138362156L, - 9035007221503623051L, - 5722056230130603177L, - -5443061851556843748L, - -7554957764207092109L, - 447883090204372074L, - 533916651576859197L, - -3104765246501904165L, - -4002281505194601516L, - -8402008431255610992L, - -408273018037005304L, - 214196458752109430L, - 6458513309998070914L, - 2665048360156607904L, - 96698248584467992L, - -3238403026096269033L, - 6759639479763272920L, - -4231971627796170796L, - -2149574977639731179L, - -1437035755788460036L, - -6000005629185669767L, - 145244292800946348L, - -3056352941404947199L, - 3748284277779018970L, - 7328354565489106580L, - -2176895260373660284L, - 3077983936372755601L, - 1215485830019410079L, - 683050801367331140L, - -3173237622987755212L, - -1951990779107873701L, - -4714366021269652421L, - 4934690664256059008L, - 1674823104333774474L, - -3974408282362828040L, - 2001478896492417760L, - -4115105568354384199L, - -2039694725495941666L, - -587763432329933431L, - -391276713546911316L, - -5543400904809469053L, - 1882564440421402418L, - -4991793588968693036L, - 3454088185914578321L, - 2290855447126188424L, - 3027910585026909453L, - 2136873580213167431L, - -6243562989966916730L, - 5887939953208193029L, - -3491821629467655741L, - -3138303216306660662L, - 8572629205737718669L, - 4154439973110146459L, - 5542921963475106759L, - -2025215496720103521L, - -4047933760493641640L, - -169455456138383823L, - -1164572689128024473L, - -8551078127234162906L, - -7247713218016599028L, - 8725299775220778242L, - 6263466461599623132L, - 7931568057263751768L, - 7365493014712655238L, - -7343740914722477108L, - 8294118602089088477L, - 7677867223984211483L, - -7052188421655969232L, - -3739992520633991431L, - 772835781531324307L, - 881441588914692737L, - 6321450879891466401L, - 5682516032668315027L, - 8493068269270840662L, - -3895212467022280567L, - -3241911302335746277L, - -7199586338775635848L, - -4606922569968527974L, - -806850906331637768L, - 2433670352784844513L, - -5787982146811444512L, - 7852193425348711165L, - 8669396209073850051L, - -6898875695148963118L, - 6523939610287206782L, - -8084962379210153174L, - 8159432443823995836L, - -2631068535470883494L, - -338649779993793113L, - 6514650029997052016L, - 3926259678521802094L, - 5443275905907218528L, - 7312187582713433551L, - -2993773587362997676L, - -1068335949405953411L, - 4499730398606216151L, - 8538015793827433712L, - -4057209365270423575L, - -1504284818438273559L, - -6460688570035010846L, - 1765077117408991117L, - 8278320303525164177L, - 8510128922449361533L, - 1305722765578569816L, - 7250861238779078656L, - -576624504295396147L, - -4363714566147521011L, - -5932111494795524073L, - 1837387625936544674L, - -4186755953373944712L, - -7657073597826358867L, - 140408487263951108L, - 5578463635002659628L, - 3400326044813475885L, - -6092804808386714986L, - -2410324417287268694L, - 3222007930183458970L, - 4932471983280850419L, - 3554114546976144528L, - -7216067928362857082L, - -6115289896923351748L, - -6769646077108881947L, - 4263895947722578066L, - 2939136721007694271L, - 1426030606447416658L, - -1316192446807442076L, - 5366182640480055129L, - 6527003877470258527L, - 5849680119000207603L, - 5263993237214222328L, - -6936533648789185663L, - -9063642143790846605L, - 3795892210758087672L, - 4987213125282940176L, - 2505500970421590750L, - -1014022559552365387L, - -3574736245968367770L, - 1180676507127340259L, - -2261908445207512503L, - -8416682633172243509L, - 1114990703652673283L, - 7753746660364401380L, - 1874908722469707905L, - 2033421444403047677L, - 21412168602505589L, - 385957952615286205L, - 2053171460074727107L, - 1915131899400103774L, - 6680879515029368390L, - 568807208929724162L, - -6211541450459087674L, - -5026690733412145448L, - 1384781941404886235L, - -98027820852587266L, - 1806580495924249669L, - 6322077317403503963L, - 9078162931419569939L, - -2809061215428363978L, - 7697867577577415733L, - -5270063855897737274L, - 5649864555290587388L, - -6970990547695444247L, - 579684606137331754L, - 3871931565451195154L, - 2030008578322050218L, - -5012357307111799829L, - -2271365921756144065L, - 4551962665158074190L, - -3385474923040271312L, - -7647625164191633577L, - 6634635380316963029L, - -5201190933687061585L, - 8864818738548593973L, - 2855828214210882907L, - 9154512990734024165L, - -6945306719789457786L, - 1200243352799481087L, - 875998327415853787L, - 1275313054449881011L, - -6105772045375948736L, - -2926927684328291437L, - 9200050852144954779L, - 5188726645765880663L, - 5197037323312705176L, - 3434926231010121611L, - -5054013669361906544L, - 2582959199749224670L, - -6053757512723474059L, - -5016308176846054473L, - -2509827316698626133L, - 7700343644503853204L, - -1997627249894596731L, - 3993168688325352290L, - -8181743677541277704L, - 3719056119682565597L, - -7264411659282947790L, - 7177028972346484464L, - -5460831176884283278L, - 1799904662416293978L, - -6549616005092764514L, - 5472403994001122052L, - 8683463751708388502L, - -7873363037838316398L, - 689134758256487260L, - -1287443614028696450L, - 4452712919702709507L, - 762909374167538893L, - 6594302592326281411L, - 1183786629674781984L, - 5021847859620133476L, - -2490098069181538915L, - 5105145136026716679L, - 4437836948098585718L, - 1987270426215858862L, - 6170312798826946249L, - 634297557126003407L, - -1672811625495999581L, - 6282971595586218191L, - 4549149305727581687L, - -5652165370435317782L, - 1064501550023753890L, - -5334885527127139723L, - -6904378001629481237L, - -1807576691784201230L, - -205688432992053911L, - 7621619053293393289L, - 6258649161313982470L, - -1111634238359342096L, - -8044260779481691987L, - 400270655839010807L, - -7806833581382890725L, - -2970563349459508036L, - -7392591524816802798L, - 2918924613160219805L, - -6444161627929149002L, - 6096497501321778876L, - -1477975665655830038L, - 1690651307597306138L, - -2364076888826085362L, - -6521987420014905821L, - -4419193480146960582L, - 3538587780233092477L, - 8374665961716940404L, - 7492412312405424500L, - 6311662249091276767L, - -1240235198282023566L, - 5478559631401166447L, - 3476714419313462133L, - 377427285984503784L, - 2570472638778991109L, - -2741381313777447835L, - -7123472905503039596L, - 2493658686946955193L, - 1024677789035847585L, - -2916713904339582981L, - -4532003852004642304L, - -2202143560366234111L, - 5832267856442755135L, - -261740607772957384L, - 239435959690278014L, - 5755548341947719409L, - 6138795458221887696L, - -7709506987360146385L, - -6657487758065140444L, - -7006376793203657499L, - 6544409861846502033L, - 3171929352014159247L, - 1051041925048792869L, - 2617300158375649749L, - 952652799620095175L, - -576661730162168147L, - -1634191369221345988L, - 4833656816115993519L, - 647566759700005786L, - 2473810683785291822L, - 3005977181064745326L, - -3321881966853149523L, - 7595337666427588699L, - 6004093624251057224L, - -563917505657690279L, - 6117428527147449302L, - -6287297509522976113L, - -4527219334756214406L, - 742626429298092489L, - 3057351806086972041L, - 645967551210272605L, - -4428701157828864227L, - 3236379103879435414L, - -8477089892132066300L, - -6127365537275859058L, - -4052490484706946358L, - -8004854976625046469L, - -3679456917426613424L, - -8212793762082595299L, - -818288739465424130L, - 1358812099481667095L, - 7835987612195254310L, - -3663247409614323059L, - -2931105150130396604L, - 7296136776835614792L, - -2014557408985889628L, - 7267662411237959788L, - 3699280615819277743L, - -212010675469091396L, - -6518374332458360120L, - 145026010541628849L, - 1879297324213501001L, - -7146296067751816833L, - -5002958800391379931L, - 6060682439924517608L, - -432234782921170964L, - -6669688947353256956L, - 7728943532792041267L, - 830911367341171721L, - 3396934884314289432L, - -779464156662780749L, - 2330041851883352285L, - -4783350380736276693L, - -5758476056890049254L, - -7551552301614791791L, - 1253334187723911710L, - -2685018208308798978L, - 5379636036360946454L, - 6154668487114681217L, - -8641287462255458898L, - 4676087643800649558L, - -2405142641398691475L, - 1088685126864246881L, - 6431149082338374041L, - -607357695335069155L, - -720970692129524140L, - 2648766932394044468L, - 8408344790179354573L, - -6193808387735667350L, - 7722524628524697419L, - -6975433852560238120L, - -2925851029234475295L, - -4274458387165211028L, - -8355836377702147319L, - 5278146397877332061L, - 8502098812383680707L, - 2292836642336580326L, - -6127608082651070062L, - 2222301962240611208L, - -1930887695854799378L, - 7640503480494894592L, - 1162652186586436094L, - -1918002592943761683L, - 7648998601717261840L, - -8472603250832757057L, - -988877663117552456L, - 2368458128168026494L, - -6480813811998475245L, - -5896967824416018967L, - -2593783161701820446L, - 6950098417530252598L, - 6362589545555771236L, - 7981389665448567125L, - 3954017080198558850L, - 1626078615050230622L, - 6650159066527969109L, - 697345338922935394L, - -1226816215461768626L, - 8740408765973837440L, - -4194155864629568323L, - 7016680023232424746L, - 6043281358142429469L, - -4201005667174376809L, - 1216727117859013155L, - 6367202436544203935L, - 35414869396444636L, - 3715622794033998412L, - 488654435687670554L, - -2503747297224687460L, - 3147101919441470388L, - -8248611218693190922L, - 970697264481229955L, - 3411465763826851418L, - 9117405004661599969L, - -5204346498331519734L, - -19637460819385174L, - -5039124225167977219L, - 2990108874601696668L, - -2623857460235459202L, - 4256291692861397446L, - 6724147860870760443L, - 3558616688507246537L, - 6487680097936412800L, - -6470792832935928161L, - 4314814550912237614L, - -1292878983006062345L, - 6791915152630414174L, - 5971652079925815310L, - 2557529546662864312L, - 466175054322801580L, - -585216717310746872L, - -2486640422147349036L, - 7212029603994220134L, - 3958995069888972500L, - 4950471855791412790L, - -3721948842035712763L, - -6184503487488243051L, - 4079570444585775332L, - -3952156172546996872L, - 4543894231118208322L, - -1739995588466209963L, - 9155948355455935530L, - 5821980345462207860L, - -2431287667309520417L, - -3890108130519441316L, - -558124689277030490L, - 6079823537335801717L, - 5409742395192364262L, - -2329885777717160453L, - -7332804342513677651L, - 1466490574975950555L, - -420549419907427929L, - -5249909814389692516L, - -5145692168206210661L, - 5934113980649113921L, - 3241618428555359661L, - -6622110266160980250L, - 5048250878669516223L, - 5747219637359976174L, - 2975906212588223728L, - 5730216838646273215L, - -176713127129024690L, - 6734624279336671146L, - 5127866734316017180L, - 7111761230887705595L, - 3457811808274317235L, - 3362961434604932375L, - -1877869936854991246L, - 7171428594877765665L, - -8252167178400462374L, - -6306888185035821047L, - -6684702191247683887L, - -7754928454824190529L, - -1902605599135704386L, - -4037319846689421239L, - 8493746058123583457L, - -8156648963857047193L, - 2051510355149839497L, - -1256416624177218909L, - -3344927996254072010L, - -1838853051925943568L, - 316927471680974556L, - -1502257066700798003L, - -5836095610125837606L, - -1594125583615895424L, - 1442211486559637962L, - -144295071206619569L, - 5159850900959273410L, - 4589139881166423678L, - -7038726987463097509L, - 2886082400772974595L, - 2780759114707171916L, - 5694649587906297495L, - 1260349041268169667L, - 4921517488271434890L, - 644696475796073018L, - 6262811963753436289L, - -6128198676595868773L, - -3625352083004760261L, - -8751453332943236675L, - 8749249479868749221L, - -2450808199545048250L, - -6517435817046180917L, - -3433321727429234998L, - -2591586258908763451L, - 3847750870868804507L, - 6603614438546398643L, - -7598682191291031287L, - 8710261565627204971L, - 4753389483755344355L, - -4645333069458786881L, - -6742695046613492214L, - 643070478568866643L, - -7543096104151965610L, - 7171495384655926161L, - 595063872610714431L, - 3292310150781130424L, - 4326847806055440904L, - -4580020566072794152L, - 3142286571820373678L, - 5530356537440155930L, - 546372639737516181L, - 7401214477400367500L, - 7406531960402873109L, - 3287639667219172570L, - 4977301681213633671L, - 5253257820925174498L, - 2906216636104297878L, - 6142955758238347523L, - -3498651268741727235L, - -5875053958265588593L, - 3896719087169993883L, - -910904726885775073L, - 380107493197368177L, - -4993591912695447004L, - 2970487257212582761L, - 2551762717569548774L, - 953061649962736812L, - 8949739538606589463L, - -2962839167079475801L, - -1375673191272573835L, - 3761793818361866390L, - -389577789190726878L, - 5661262051502180269L, - -6558556411143987683L, - -702798336372315031L, - -336662820551371779L, - 998576401126580155L, - -5945021269112582755L, - 6108533925730179871L, - 2207095297001999618L, - -9042779159998880435L, - -6177868444342118372L, - 6775965402605895077L, - -3788428885163306576L, - 7790055010527190387L, - 3581587652196995358L, - -6176354155561607694L, - -5859381340906321207L, - 395898765763528395L, - 8132967590863909348L, - -3329092504090544483L, - -6785855381158040247L, - 1497218517051796750L, - -5352392845588925911L, - -6271364901230559194L, - 2314830370653350118L, - -7617588269001325450L, - 1423166885758213795L, - 8538612578307869519L, - -61918791718295474L, - -8177103503192338593L, - -4740086042584326695L, - 3677931948215558698L, - 6558856291580149558L, - 2674975452453336335L, - 5133796555646930522L, - 5139252693299337100L, - 7949476871295347205L, - 4407815324662880678L, - -3758305875280581215L, - 6066309507576587415L, - -7368508486398350973L, - -3181640264332856492L, - 6905100869343314145L, - 3677177673848733417L, - 8862933624870506941L, - -8575223195813810568L, - 9178470351355678144L, - 4677809017145408358L, - -1194833416287894989L, - 3436364743255571183L, - -5204770725795363579L, - 560599448536335263L, - -3192077522964776200L, - -751575299648803575L, - 6334581746534596579L, - -8358187891202563300L, - -1462480609823525055L, - 5605961062646987941L, - 4968399805931440889L, - 7968693270782626653L, - -5868205923557518188L, - 1830234928743560617L, - -8435261076693154407L, - 2138416970728681332L, - 8088740745199685138L, - 806532400344230520L, - 1800590379902909333L, - -8909128842071238901L, - -7357495566969170860L, - 3679766664126940553L, - 2060050474865839094L, - 2363972840121763414L, - 525695004292982714L, - -1224842191746529593L, - 7011317848855545003L, - -6337167558180299938L, - -5184688833363785939L, - -8426673387248359061L, - -5035438815930785229L, - 3521810320608058994L, - 4803742557254962242L, - 6623527039545786598L, - -1221475882122634738L, - -3344794405518401087L, - 6510298498414053658L, - 2844753907937720338L, - 90502309714994895L, - -750403235344282494L, - -4825474181021465833L, - -3405519947983849510L, - 3503875590944089793L, - 7286294700691822468L, - 7828126881500292486L, - 8437899353709338096L, - 136052254470293480L, - 1113259077339995086L, - -8244887265606191121L, - 8089569503800461649L, - -1429698194850157567L, - 1575595674002364989L, - 3576095286627428675L, - -7653655285807569222L, - -6053506977362539111L, - -3923855345805787169L, - -8001149080454232377L, - -4382867706931832271L, - 4212860258835896297L, - 4207674254247034014L, - 5519424058779519159L, - -754483042161434654L, - 1434113479814210082L, - -6416645032698336896L, - 5624329676066514819L, - -8229557208322175959L, - 3922640911653270376L, - 7826932478782081910L, - -4862787164488635842L, - 1449234668827944573L, - -1781657689570106327L, - 5442827552725289699L, - 3589862161007644641L, - 4787115581650652778L, - -3512152721942525726L, - -6750103117958685206L, - 5012970446659949261L, - 6797752795961689017L, - 5086454597639943700L, - -7616068364979994076L, - 1492846825433110217L, - 2967476304433704510L, - -8413824338284112078L, - -1319049442043273974L, - -1756090916806844109L, - -9061091728950139525L, - -6864767830358160810L, - 4879532090226251157L, - 5528644708740739488L + -7444071767201028348L, + -8959994473701255385L, + 7116559933691734543L, + 6019482000716350659L, + -6625277557348586272L, + -5507563483608914162L, + 1540412690865189709L, + 4522324563441226749L, + -7143238906056518746L, + -7989831429045113014L, + -7103973673268129917L, + -2319060423616348937L, + -7576144055863289344L, + -8903544572546912743L, + 6376815151655939880L, + 5913754614426879871L, + 6466567997237536608L, + -869838547529805462L, + -2416009472486582019L, + -3059673981515537339L, + 4211239092494362041L, + 1414635639471257331L, + 166863084165354636L, + -3761330575439628223L, + 3524931906845391329L, + 6070229753198168844L, + -3740381894759773016L, + -1268276809699008557L, + 1518581707938531581L, + 7988048690914090770L, + -4510281763783422346L, + -8988936099728967847L, + -8644129751861931918L, + 2046936095001747419L, + 339737284852751748L, + -8493525091666023417L, + -3962890767051635164L, + -5799948707353228709L, + -6503577434416464161L, + 7718729912902936653L, + 191197390694726650L, + -2677870679247057207L, + 20411540801847004L, + 2738354376741059902L, + -3754251900675510347L, + -3208495075154651980L, + 5505877218642938179L, + 6710910171520780908L, + -9060809096139575515L, + 6936438027860748388L, + -6675099569841255629L, + -5358120966884144380L, + -4970515091611332076L, + -1810965683604454696L, + -516197887510505242L, + 1240864593087756274L, + 6033499571835033332L, + 7223146028771530185L, + 909128106589125206L, + 1567720774747329341L, + -1867353301780159863L, + 4655107429511759333L, + 5356891185236995950L, + 182631115370802890L, + -3582744155969569138L, + 595148673029792797L, + 495183136068540256L, + 5536689004903505647L, + -8472683670935785889L, + -4335021702965928166L, + 7306662983232020244L, + 4285260837125010956L, + 8288813008819191181L, + -3442351913745287612L, + 4883297703151707194L, + 9135546183059994964L, + 123663780425483012L, + 509606241253238381L, + 5940344208569311369L, + -2650142344608291176L, + 3232776678942440459L, + -922581627593772181L, + 7617977317085633049L, + 7154902266379028518L, + -5806388675416795571L, + 4368003766009575737L, + -2922716024457242064L, + 4771160713173250118L, + 3275897444752647349L, + -297220751499763878L, + 5095659287766176401L, + 1181843887132908826L, + 9058283605301070357L, + 3984713963471276643L, + 6050484112980480005L, + 1551535065359244224L, + 565337293533335618L, + 7412521035272884309L, + -4735469481351389369L, + 6998597101178745656L, + -9107075101236275961L, + 5879828914430779796L, + 6034964979406620806L, + 5666406915264701514L, + -4666218379625258428L, + 2749972203764815656L, + -782986256139071446L, + 6830581400521008570L, + 2588852022632995043L, + -5484725487363818922L, + -3319556935687817112L, + 6481961252981840893L, + 2204492445852963006L, + -5301091763401031066L, + -2615065677047206256L, + -6769817545131782460L, + -8421640685322953142L, + -3669062629317949176L, + -9167016978640750490L, + 2783671191687959562L, + -7599469568522039782L, + -7589134103255480011L, + -5932706841188717592L, + -8689756354284562694L, + -3934347391198581249L, + -1344748563236040701L, + 2172701592984478834L, + -5322052340624064417L, + -8493945390573620511L, + 3349021988137788403L, + -1806262525300459538L, + -8091524448239736618L, + 4022306289903960690L, + -8346915997379834224L, + -2106001381993805461L, + -5784123934724688161L, + 6775158099649720388L, + -3869682756870293568L, + 4356490186652082006L, + 8469371446702290916L, + -2972961082318458602L, + -7188106622222784561L, + -4961006366631572412L, + 3199991182014172900L, + 2917435868590434179L, + 8385845305547872127L, + 7706824402560674655L, + -1587379863634865277L, + -4212156212298809650L, + -1305209322000720233L, + -7866728337506665880L, + 8195089740529247049L, + -4876930125798534239L, + 798222697981617129L, + -2441020897729372845L, + -3926158482651178666L, + -1254795122048514130L, + 5192463866522217407L, + -5426289318796042964L, + -3267454004443530826L, + 471043133625225785L, + -660956397365869974L, + -6149209189144999161L, + -2630977660039166559L, + 8512219789663151219L, + -3309844068134074620L, + -6211275327487847132L, + -2130171729366885995L, + 6569302074205462321L, + 4855778342281619706L, + 3867211421508653033L, + -3002480002418725542L, + -8297543107467502696L, + 8049642289208775831L, + -5439825716055425635L, + 7251760070798756432L, + -4774526021749797528L, + -3892389575184442548L, + 5162451061244344424L, + 6000530226398686578L, + -5713092252241819676L, + 8740913206879606081L, + -8693282419677309723L, + 1576205127972543824L, + 5760354502610401246L, + 3173225529903529385L, + 1785166236732849743L, + -1024443476832068882L, + -7389053248306187459L, + 1171021620017782166L, + 1471572212217428724L, + 7720766400407679932L, + -8844781213239282804L, + -7030159830170200877L, + 2195066352895261150L, + 1343620937208608634L, + 9178233160016731645L, + -757883447602665223L, + 3303032934975960867L, + -3685775162104101116L, + -4454903657585596656L, + -5721532367620482629L, + 8453227136542829644L, + 5397498317904798888L, + 7820279586106842836L, + -2369852356421022546L, + 3910437403657116169L, + 6072677490463894877L, + -2651044781586183960L, + 5173762670440434510L, + -2970017317595590978L, + -1024698859439768763L, + -3098335260967738522L, + -1983156467650050768L, + -8132353894276010246L, + -1088647368768943835L, + -3942884234250555927L, + 7169967005748210436L, + 2870913702735953746L, + -2207022373847083021L, + 1104181306093040609L, + 5026420573696578749L, + -5874879996794598513L, + -4777071762424874671L, + -7506667858329720470L, + -2926679936584725232L, + -5530649174168373609L, + 5282408526788020384L, + 3589529249264153135L, + -6220724706210580398L, + -7141769650716479812L, + 5142537361821482047L, + -7029808662366864423L, + -6593520217660744466L, + 1454581737122410695L, + -139542971769349865L, + 1727752089112067235L, + -775001449688420017L, + -5011311035350652032L, + -8671171179275033159L, + -2850915129917664667L, + -5258897903906998781L, + -6954153088230718761L, + -4070351752166223959L, + -6902592976462171099L, + -7850366369290661391L, + -4562443925864904705L, + 3186922928616271015L, + 2208521081203400591L, + -2727824999830592777L, + -3817861137262331295L, + 2236720618756809066L, + -4888946967413746075L, + -446884183491477687L, + -43021963625359034L, + -5857689226703189898L, + -2156533592262354883L, + -2027655907961967077L, + 7151844076490292500L, + -5029149124756905464L, + 526404452686156976L, + 8741076980297445408L, + 7962851518384256467L, + -105985852299572102L, + -2614605270539434398L, + -8265006689379110448L, + 8158561071761524496L, + -6923530157382047308L, + 5551949335037580397L, + 565709346370307061L, + -4780869469938333359L, + 6931895917517004830L, + 565234767538051407L, + -8663136372880869656L, + 1427340323685448983L, + 6492705666640232290L, + 1481585578088475369L, + -1712711110946325531L, + 3281685342714380741L, + 6441384790483098576L, + -1073539554682358394L, + 5704050067194788964L, + -5495724689443043319L, + -5425043165837577535L, + 8349736730194941321L, + -4123620508872850061L, + 4687874980541143573L, + -468891940172550975L, + -3212254545038049829L, + -6830802881920725628L, + 9033050533972480988L, + 4204031879107709260L, + -677513987701096310L, + -3286978557209370155L, + 1644111582609113135L, + 2040089403280131741L, + 3323690950628902653L, + -7686964480987925756L, + -4664519769497402737L, + 3358384147145476542L, + -4699919744264452277L, + -4795197464927839170L, + 5051607253379734527L, + -8987703459734976898L, + 8993686795574431834L, + -2688919474688811047L, + 375938183536293311L, + 1049459889197081920L, + -1213022037395838295L, + 4932989235110984138L, + -6647247877090282452L, + -7698817539128166242L, + -3264029336002462659L, + 6487828018122309795L, + -2660821091484592878L, + 7104391069028909121L, + -1765840012354703384L, + 85428166783788931L, + -6732726318028261938L, + 7566202549055682933L, + 229664898114413280L, + -1474237851782211353L, + -1571058880058007603L, + -7926453582850712144L, + 2487148368914275243L, + 8740031015380673473L, + 1908345726881363169L, + -2510061320536523178L, + 7854780026906019630L, + -6023415596650016493L, + -6264841978089051107L, + 4024998278016087488L, + -4266288992025826072L, + -3222176619422665563L, + -1999258726038299316L, + 1715270077442385636L, + 6764658837948099754L, + -8646962299105812577L, + -51484064212171546L, + -1482515279051057493L, + -8663965522608868414L, + -256555202123523670L, + 1973279596140303801L, + -7280796173024508575L, + -5691760367231354704L, + -5915786562256300861L, + -3697715074906156565L, + 3710290115318541949L, + 6796151623958134374L, + -935299482515386356L, + -7078378973978660385L, + 5379481350768846927L, + -9011221735308556302L, + 5936568631579608418L, + -6060732654964511813L, + -4243141607840017809L, + 3198488845875349355L, + -7809288876010447646L, + 4371587872421472389L, + -1304197371105522943L, + 7389861473143460103L, + -1892352887992004024L, + 2214828764044713398L, + 6347546952883613388L, + 1275694314105480954L, + -5262663163358903733L, + 1524757505892047607L, + 1474285098416162746L, + -7976447341881911786L, + 4014100291977623265L, + 8994982266451461043L, + -7737118961020539453L, + -2303955536994331092L, + 1383016539349937136L, + 1771516393548245271L, + -5441914919967503849L, + 5449813464890411403L, + -3321280356474552496L, + 4084073849712624363L, + 4290039323210935932L, + 2449523715173349652L, + 7494827882138362156L, + 9035007221503623051L, + 5722056230130603177L, + -5443061851556843748L, + -7554957764207092109L, + 447883090204372074L, + 533916651576859197L, + -3104765246501904165L, + -4002281505194601516L, + -8402008431255610992L, + -408273018037005304L, + 214196458752109430L, + 6458513309998070914L, + 2665048360156607904L, + 96698248584467992L, + -3238403026096269033L, + 6759639479763272920L, + -4231971627796170796L, + -2149574977639731179L, + -1437035755788460036L, + -6000005629185669767L, + 145244292800946348L, + -3056352941404947199L, + 3748284277779018970L, + 7328354565489106580L, + -2176895260373660284L, + 3077983936372755601L, + 1215485830019410079L, + 683050801367331140L, + -3173237622987755212L, + -1951990779107873701L, + -4714366021269652421L, + 4934690664256059008L, + 1674823104333774474L, + -3974408282362828040L, + 2001478896492417760L, + -4115105568354384199L, + -2039694725495941666L, + -587763432329933431L, + -391276713546911316L, + -5543400904809469053L, + 1882564440421402418L, + -4991793588968693036L, + 3454088185914578321L, + 2290855447126188424L, + 3027910585026909453L, + 2136873580213167431L, + -6243562989966916730L, + 5887939953208193029L, + -3491821629467655741L, + -3138303216306660662L, + 8572629205737718669L, + 4154439973110146459L, + 5542921963475106759L, + -2025215496720103521L, + -4047933760493641640L, + -169455456138383823L, + -1164572689128024473L, + -8551078127234162906L, + -7247713218016599028L, + 8725299775220778242L, + 6263466461599623132L, + 7931568057263751768L, + 7365493014712655238L, + -7343740914722477108L, + 8294118602089088477L, + 7677867223984211483L, + -7052188421655969232L, + -3739992520633991431L, + 772835781531324307L, + 881441588914692737L, + 6321450879891466401L, + 5682516032668315027L, + 8493068269270840662L, + -3895212467022280567L, + -3241911302335746277L, + -7199586338775635848L, + -4606922569968527974L, + -806850906331637768L, + 2433670352784844513L, + -5787982146811444512L, + 7852193425348711165L, + 8669396209073850051L, + -6898875695148963118L, + 6523939610287206782L, + -8084962379210153174L, + 8159432443823995836L, + -2631068535470883494L, + -338649779993793113L, + 6514650029997052016L, + 3926259678521802094L, + 5443275905907218528L, + 7312187582713433551L, + -2993773587362997676L, + -1068335949405953411L, + 4499730398606216151L, + 8538015793827433712L, + -4057209365270423575L, + -1504284818438273559L, + -6460688570035010846L, + 1765077117408991117L, + 8278320303525164177L, + 8510128922449361533L, + 1305722765578569816L, + 7250861238779078656L, + -576624504295396147L, + -4363714566147521011L, + -5932111494795524073L, + 1837387625936544674L, + -4186755953373944712L, + -7657073597826358867L, + 140408487263951108L, + 5578463635002659628L, + 3400326044813475885L, + -6092804808386714986L, + -2410324417287268694L, + 3222007930183458970L, + 4932471983280850419L, + 3554114546976144528L, + -7216067928362857082L, + -6115289896923351748L, + -6769646077108881947L, + 4263895947722578066L, + 2939136721007694271L, + 1426030606447416658L, + -1316192446807442076L, + 5366182640480055129L, + 6527003877470258527L, + 5849680119000207603L, + 5263993237214222328L, + -6936533648789185663L, + -9063642143790846605L, + 3795892210758087672L, + 4987213125282940176L, + 2505500970421590750L, + -1014022559552365387L, + -3574736245968367770L, + 1180676507127340259L, + -2261908445207512503L, + -8416682633172243509L, + 1114990703652673283L, + 7753746660364401380L, + 1874908722469707905L, + 2033421444403047677L, + 21412168602505589L, + 385957952615286205L, + 2053171460074727107L, + 1915131899400103774L, + 6680879515029368390L, + 568807208929724162L, + -6211541450459087674L, + -5026690733412145448L, + 1384781941404886235L, + -98027820852587266L, + 1806580495924249669L, + 6322077317403503963L, + 9078162931419569939L, + -2809061215428363978L, + 7697867577577415733L, + -5270063855897737274L, + 5649864555290587388L, + -6970990547695444247L, + 579684606137331754L, + 3871931565451195154L, + 2030008578322050218L, + -5012357307111799829L, + -2271365921756144065L, + 4551962665158074190L, + -3385474923040271312L, + -7647625164191633577L, + 6634635380316963029L, + -5201190933687061585L, + 8864818738548593973L, + 2855828214210882907L, + 9154512990734024165L, + -6945306719789457786L, + 1200243352799481087L, + 875998327415853787L, + 1275313054449881011L, + -6105772045375948736L, + -2926927684328291437L, + 9200050852144954779L, + 5188726645765880663L, + 5197037323312705176L, + 3434926231010121611L, + -5054013669361906544L, + 2582959199749224670L, + -6053757512723474059L, + -5016308176846054473L, + -2509827316698626133L, + 7700343644503853204L, + -1997627249894596731L, + 3993168688325352290L, + -8181743677541277704L, + 3719056119682565597L, + -7264411659282947790L, + 7177028972346484464L, + -5460831176884283278L, + 1799904662416293978L, + -6549616005092764514L, + 5472403994001122052L, + 8683463751708388502L, + -7873363037838316398L, + 689134758256487260L, + -1287443614028696450L, + 4452712919702709507L, + 762909374167538893L, + 6594302592326281411L, + 1183786629674781984L, + 5021847859620133476L, + -2490098069181538915L, + 5105145136026716679L, + 4437836948098585718L, + 1987270426215858862L, + 6170312798826946249L, + 634297557126003407L, + -1672811625495999581L, + 6282971595586218191L, + 4549149305727581687L, + -5652165370435317782L, + 1064501550023753890L, + -5334885527127139723L, + -6904378001629481237L, + -1807576691784201230L, + -205688432992053911L, + 7621619053293393289L, + 6258649161313982470L, + -1111634238359342096L, + -8044260779481691987L, + 400270655839010807L, + -7806833581382890725L, + -2970563349459508036L, + -7392591524816802798L, + 2918924613160219805L, + -6444161627929149002L, + 6096497501321778876L, + -1477975665655830038L, + 1690651307597306138L, + -2364076888826085362L, + -6521987420014905821L, + -4419193480146960582L, + 3538587780233092477L, + 8374665961716940404L, + 7492412312405424500L, + 6311662249091276767L, + -1240235198282023566L, + 5478559631401166447L, + 3476714419313462133L, + 377427285984503784L, + 2570472638778991109L, + -2741381313777447835L, + -7123472905503039596L, + 2493658686946955193L, + 1024677789035847585L, + -2916713904339582981L, + -4532003852004642304L, + -2202143560366234111L, + 5832267856442755135L, + -261740607772957384L, + 239435959690278014L, + 5755548341947719409L, + 6138795458221887696L, + -7709506987360146385L, + -6657487758065140444L, + -7006376793203657499L, + 6544409861846502033L, + 3171929352014159247L, + 1051041925048792869L, + 2617300158375649749L, + 952652799620095175L, + -576661730162168147L, + -1634191369221345988L, + 4833656816115993519L, + 647566759700005786L, + 2473810683785291822L, + 3005977181064745326L, + -3321881966853149523L, + 7595337666427588699L, + 6004093624251057224L, + -563917505657690279L, + 6117428527147449302L, + -6287297509522976113L, + -4527219334756214406L, + 742626429298092489L, + 3057351806086972041L, + 645967551210272605L, + -4428701157828864227L, + 3236379103879435414L, + -8477089892132066300L, + -6127365537275859058L, + -4052490484706946358L, + -8004854976625046469L, + -3679456917426613424L, + -8212793762082595299L, + -818288739465424130L, + 1358812099481667095L, + 7835987612195254310L, + -3663247409614323059L, + -2931105150130396604L, + 7296136776835614792L, + -2014557408985889628L, + 7267662411237959788L, + 3699280615819277743L, + -212010675469091396L, + -6518374332458360120L, + 145026010541628849L, + 1879297324213501001L, + -7146296067751816833L, + -5002958800391379931L, + 6060682439924517608L, + -432234782921170964L, + -6669688947353256956L, + 7728943532792041267L, + 830911367341171721L, + 3396934884314289432L, + -779464156662780749L, + 2330041851883352285L, + -4783350380736276693L, + -5758476056890049254L, + -7551552301614791791L, + 1253334187723911710L, + -2685018208308798978L, + 5379636036360946454L, + 6154668487114681217L, + -8641287462255458898L, + 4676087643800649558L, + -2405142641398691475L, + 1088685126864246881L, + 6431149082338374041L, + -607357695335069155L, + -720970692129524140L, + 2648766932394044468L, + 8408344790179354573L, + -6193808387735667350L, + 7722524628524697419L, + -6975433852560238120L, + -2925851029234475295L, + -4274458387165211028L, + -8355836377702147319L, + 5278146397877332061L, + 8502098812383680707L, + 2292836642336580326L, + -6127608082651070062L, + 2222301962240611208L, + -1930887695854799378L, + 7640503480494894592L, + 1162652186586436094L, + -1918002592943761683L, + 7648998601717261840L, + -8472603250832757057L, + -988877663117552456L, + 2368458128168026494L, + -6480813811998475245L, + -5896967824416018967L, + -2593783161701820446L, + 6950098417530252598L, + 6362589545555771236L, + 7981389665448567125L, + 3954017080198558850L, + 1626078615050230622L, + 6650159066527969109L, + 697345338922935394L, + -1226816215461768626L, + 8740408765973837440L, + -4194155864629568323L, + 7016680023232424746L, + 6043281358142429469L, + -4201005667174376809L, + 1216727117859013155L, + 6367202436544203935L, + 35414869396444636L, + 3715622794033998412L, + 488654435687670554L, + -2503747297224687460L, + 3147101919441470388L, + -8248611218693190922L, + 970697264481229955L, + 3411465763826851418L, + 9117405004661599969L, + -5204346498331519734L, + -19637460819385174L, + -5039124225167977219L, + 2990108874601696668L, + -2623857460235459202L, + 4256291692861397446L, + 6724147860870760443L, + 3558616688507246537L, + 6487680097936412800L, + -6470792832935928161L, + 4314814550912237614L, + -1292878983006062345L, + 6791915152630414174L, + 5971652079925815310L, + 2557529546662864312L, + 466175054322801580L, + -585216717310746872L, + -2486640422147349036L, + 7212029603994220134L, + 3958995069888972500L, + 4950471855791412790L, + -3721948842035712763L, + -6184503487488243051L, + 4079570444585775332L, + -3952156172546996872L, + 4543894231118208322L, + -1739995588466209963L, + 9155948355455935530L, + 5821980345462207860L, + -2431287667309520417L, + -3890108130519441316L, + -558124689277030490L, + 6079823537335801717L, + 5409742395192364262L, + -2329885777717160453L, + -7332804342513677651L, + 1466490574975950555L, + -420549419907427929L, + -5249909814389692516L, + -5145692168206210661L, + 5934113980649113921L, + 3241618428555359661L, + -6622110266160980250L, + 5048250878669516223L, + 5747219637359976174L, + 2975906212588223728L, + 5730216838646273215L, + -176713127129024690L, + 6734624279336671146L, + 5127866734316017180L, + 7111761230887705595L, + 3457811808274317235L, + 3362961434604932375L, + -1877869936854991246L, + 7171428594877765665L, + -8252167178400462374L, + -6306888185035821047L, + -6684702191247683887L, + -7754928454824190529L, + -1902605599135704386L, + -4037319846689421239L, + 8493746058123583457L, + -8156648963857047193L, + 2051510355149839497L, + -1256416624177218909L, + -3344927996254072010L, + -1838853051925943568L, + 316927471680974556L, + -1502257066700798003L, + -5836095610125837606L, + -1594125583615895424L, + 1442211486559637962L, + -144295071206619569L, + 5159850900959273410L, + 4589139881166423678L, + -7038726987463097509L, + 2886082400772974595L, + 2780759114707171916L, + 5694649587906297495L, + 1260349041268169667L, + 4921517488271434890L, + 644696475796073018L, + 6262811963753436289L, + -6128198676595868773L, + -3625352083004760261L, + -8751453332943236675L, + 8749249479868749221L, + -2450808199545048250L, + -6517435817046180917L, + -3433321727429234998L, + -2591586258908763451L, + 3847750870868804507L, + 6603614438546398643L, + -7598682191291031287L, + 8710261565627204971L, + 4753389483755344355L, + -4645333069458786881L, + -6742695046613492214L, + 643070478568866643L, + -7543096104151965610L, + 7171495384655926161L, + 595063872610714431L, + 3292310150781130424L, + 4326847806055440904L, + -4580020566072794152L, + 3142286571820373678L, + 5530356537440155930L, + 546372639737516181L, + 7401214477400367500L, + 7406531960402873109L, + 3287639667219172570L, + 4977301681213633671L, + 5253257820925174498L, + 2906216636104297878L, + 6142955758238347523L, + -3498651268741727235L, + -5875053958265588593L, + 3896719087169993883L, + -910904726885775073L, + 380107493197368177L, + -4993591912695447004L, + 2970487257212582761L, + 2551762717569548774L, + 953061649962736812L, + 8949739538606589463L, + -2962839167079475801L, + -1375673191272573835L, + 3761793818361866390L, + -389577789190726878L, + 5661262051502180269L, + -6558556411143987683L, + -702798336372315031L, + -336662820551371779L, + 998576401126580155L, + -5945021269112582755L, + 6108533925730179871L, + 2207095297001999618L, + -9042779159998880435L, + -6177868444342118372L, + 6775965402605895077L, + -3788428885163306576L, + 7790055010527190387L, + 3581587652196995358L, + -6176354155561607694L, + -5859381340906321207L, + 395898765763528395L, + 8132967590863909348L, + -3329092504090544483L, + -6785855381158040247L, + 1497218517051796750L, + -5352392845588925911L, + -6271364901230559194L, + 2314830370653350118L, + -7617588269001325450L, + 1423166885758213795L, + 8538612578307869519L, + -61918791718295474L, + -8177103503192338593L, + -4740086042584326695L, + 3677931948215558698L, + 6558856291580149558L, + 2674975452453336335L, + 5133796555646930522L, + 5139252693299337100L, + 7949476871295347205L, + 4407815324662880678L, + -3758305875280581215L, + 6066309507576587415L, + -7368508486398350973L, + -3181640264332856492L, + 6905100869343314145L, + 3677177673848733417L, + 8862933624870506941L, + -8575223195813810568L, + 9178470351355678144L, + 4677809017145408358L, + -1194833416287894989L, + 3436364743255571183L, + -5204770725795363579L, + 560599448536335263L, + -3192077522964776200L, + -751575299648803575L, + 6334581746534596579L, + -8358187891202563300L, + -1462480609823525055L, + 5605961062646987941L, + 4968399805931440889L, + 7968693270782626653L, + -5868205923557518188L, + 1830234928743560617L, + -8435261076693154407L, + 2138416970728681332L, + 8088740745199685138L, + 806532400344230520L, + 1800590379902909333L, + -8909128842071238901L, + -7357495566969170860L, + 3679766664126940553L, + 2060050474865839094L, + 2363972840121763414L, + 525695004292982714L, + -1224842191746529593L, + 7011317848855545003L, + -6337167558180299938L, + -5184688833363785939L, + -8426673387248359061L, + -5035438815930785229L, + 3521810320608058994L, + 4803742557254962242L, + 6623527039545786598L, + -1221475882122634738L, + -3344794405518401087L, + 6510298498414053658L, + 2844753907937720338L, + 90502309714994895L, + -750403235344282494L, + -4825474181021465833L, + -3405519947983849510L, + 3503875590944089793L, + 7286294700691822468L, + 7828126881500292486L, + 8437899353709338096L, + 136052254470293480L, + 1113259077339995086L, + -8244887265606191121L, + 8089569503800461649L, + -1429698194850157567L, + 1575595674002364989L, + 3576095286627428675L, + -7653655285807569222L, + -6053506977362539111L, + -3923855345805787169L, + -8001149080454232377L, + -4382867706931832271L, + 4212860258835896297L, + 4207674254247034014L, + 5519424058779519159L, + -754483042161434654L, + 1434113479814210082L, + -6416645032698336896L, + 5624329676066514819L, + -8229557208322175959L, + 3922640911653270376L, + 7826932478782081910L, + -4862787164488635842L, + 1449234668827944573L, + -1781657689570106327L, + 5442827552725289699L, + 3589862161007644641L, + 4787115581650652778L, + -3512152721942525726L, + -6750103117958685206L, + 5012970446659949261L, + 6797752795961689017L, + 5086454597639943700L, + -7616068364979994076L, + 1492846825433110217L, + 2967476304433704510L, + -8413824338284112078L, + -1319049442043273974L, + -1756090916806844109L, + -9061091728950139525L, + -6864767830358160810L, + 4879532090226251157L, + 5528644708740739488L }; }