#!/bin/sh # This is a shar archive. # The rest of this file is a shell script which will extract: # # 6_10a.h 6_10a2.h 6_10a4.h 6_10a5.h 6_10add.c 6_10all.c 6_10cmp.c 6_10cons.c 6_10div.c 6_10eq.c 6_10in.c 6_10min.c 6_10mul.c 6_10neg.c 6_10out.c 6_10pos.c 6_10tst.c 6_10tst2.c 6_10tst3.c 6_10x1.c 6_10x2.c lint.h makefile runtests3 tst1.cmp tst1.in tst2.cmp tst2.in tst3.cmp tst3.in tst4.cmp tst4.in tst5.cmp tst5.in tst6.cmp tst6.in tstA.cmp tstB.cmp tstB.in # # To extract the files from this shell archive file simply # create a directory for this file, move the archive file # to it and enter the command # # sh filename # # The files will be extracted automatically. # Note: Do not use csh. # # Archive created: Mon Jul 30 23:08:41 EDT 1990 # echo x - 6_10a.h sed 's/^X//' > 6_10a.h << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ // Define a 64 bit integer class // Exercise 6.10 #ifndef LINT_H #define LINT_H #include #include #include typedef unsigned short LINT_type; typedef unsigned long LINT_Ltype; #include "6_10a2.h" /* DELETE LINT_base */ class LINT { LINT_type s[4]; #include "6_10a4.h" /* DELETE isneg() */ friend int LINT_cmp(const LINT_type *l1, const LINT_type *l2, int n); /* DELETE */ public: #include "6_10a5.h" /* DELETE dodivmod() */ LINT (); // LINT x; LINT (int j); // LINT x = 3; LINT (long j); // LINT x = 3L; LINT (unsigned int j); // LINT x = 3; LINT (unsigned long j); // LINT x = 3L; LINT (LINT& j); // LINT x = LINT LINT (unsigned long, unsigned long); /* DELETE */ ~LINT (); LINT& operator= (LINT j); // x = y; LINT& operator= (int j); // x = 5; LINT& operator= (long j); // x = 5L; friend LINT operator+ (LINT i, LINT j); friend LINT operator+ (LINT j); friend LINT operator- (LINT i, LINT j); friend LINT operator- (LINT j); friend LINT operator* (LINT i, LINT j); friend LINT operator/ (LINT i, LINT j); friend LINT operator% (LINT i, LINT j); friend ostream& operator<< (ostream& out, LINT j); friend istream& operator>> (istream& in, LINT& j); }; #endif /* LINT_H */ !EOF! ls -l 6_10a.h echo x - 6_10a2.h sed 's/^X//' > 6_10a2.h << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ const LINT_Ltype LINT_base = 0x10000; !EOF! ls -l 6_10a2.h echo x - 6_10a4.h sed 's/^X//' > 6_10a4.h << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ int isneg() { return (s[0] & (LINT_base >> 1)); }; !EOF! ls -l 6_10a4.h echo x - 6_10a5.h sed 's/^X//' > 6_10a5.h << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ friend void dodivmod(LINT, LINT, LINT&, LINT&); !EOF! ls -l 6_10a5.h echo x - 6_10add.c sed 's/^X//' > 6_10add.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Add u[1..n] + v[1..n] to form w[0..n] Based on: The Art of Computer Programming, volume 2 D. Knuth, Section 4.3.1, Algorithm A modified to ignore w[0] */ #include LINT operator+(LINT u, LINT v) { LINT w; /* A1 [Initialize] set j <- n k <- 0 */ for (int j = 3, k = 0; ; ) { /* A2(a) [Add digits] set w[j] <- (u[j] + v[j] + k) mod b */ LINT_Ltype t = u.s[j]; t += v.s[j]; t += k; w.s[j] = t; // % LINT_base /* A3 [Loop on j] decrease j by one */ if (--j < 0) break; /* A2(b) k <- (u[j] + v[j] + k) / b */ k = t / LINT_base; } return w; } !EOF! ls -l 6_10add.c echo x - 6_10all.c sed 's/^X//' > 6_10all.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ #include #include #include "lint.h" #include "6.10cons.c" #include "6.10eq.c" #include "6.10add.c" #include "6.10cmp.c" #include "6.10pos.c" #include "6.10min.c" #include "6.10neg.c" #include "6.10mul.c" #include "6.10div.c" #include "6.10out.c" #include "6.10in.c" !EOF! ls -l 6_10all.c echo x - 6_10cmp.c sed 's/^X//' > 6_10cmp.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Compare the n LINT_type's pointed to by l1 and l2. Return -1, 0 or 1 dependent on whether l1 is less than, equal or greater than l2. */ #include int LINT_cmp(const LINT_type *l1, const LINT_type *l2, int n) { if (l1 != l2) while (--n >= 0) if (*l1++ != *l2++) return (l1[-1] > l2[-1] ? 1 : -1); return (0); } !EOF! ls -l 6_10cmp.c echo x - 6_10cons.c sed 's/^X//' > 6_10cons.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Constructors and destructor for type LINT. */ #include LINT:: LINT() // LINT x; or new LINT; { /* nothing to do */ } LINT:: LINT(int j) // LINT x = 3; { if (j < 0) s[0] = s[1] = ~0; else s[0] = s[1] = 0; s[2] = ((unsigned int) j) / LINT_base; s[3] = ((unsigned int) j) % LINT_base; } LINT:: LINT(long j) // LINT x = 3L; { if (j < 0) s[0] = s[1] = ~0; else s[0] = s[1] = 0; s[2] = ((unsigned long) j) / LINT_base; s[3] = ((unsigned long) j) % LINT_base; } LINT:: LINT(unsigned int j) // LINT x = (unsigned) 3; { s[0] = s[1] = 0; s[2] = j / LINT_base; s[3] = j % LINT_base; } LINT:: LINT(unsigned long j)// LINT x = (unsigned) 3L; { s[0] = s[1] = 0; s[2] = j / LINT_base; s[3] = j % LINT_base; } LINT:: LINT(LINT& j) // LINT x = LINT { for (int i = 0; i < 4; i++) s[i] = j.s[i]; } LINT:: ~LINT() { /* nothing to do */ } /* DELETE */ LINT:: LINT(unsigned long j, unsigned long k) /* DELETE */ { /* DELETE */ s[0] = j / LINT_base; /* DELETE */ s[1] = j % LINT_base; /* DELETE */ s[2] = k / LINT_base; /* DELETE */ s[3] = k % LINT_base; /* DELETE */ } /* DELETE */ !EOF! ls -l 6_10cons.c echo x - 6_10div.c sed 's/^X//' > 6_10div.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Divide u[1..m+n] by v[1..n] to form q[0..m] and r[1..n] Based on: The Art of Computer Programming, volume 2 D. Knuth, Section 4.3.1, Algorithm D and exercise 16. */ #include #include /* DELETE */ void dodivmod(LINT u, LINT v, LINT "ient, LINT &remainder) { int negquotient = 0, negremainder = 0; { if (debug > 1) cerr << "\n"; /* DELETE */ } { if (debug > 1) cerr << form("u=%4.4x%4.4x%4.4x%4.4x", u.s[0], u.s[1], u.s[2], u.s[3]) << "\n"; /* DELETE */ } { if (debug > 1) cerr << form("v=%4.4x%4.4x%4.4x%4.4x", v.s[0], v.s[1], v.s[2], v.s[3]) << "\n"; /* DELETE */ } /* Make u (the dividend) positive. The sign of the remainder will match the sign of the dividend. */ if (u.isneg()) { negremainder = 1; u = -u; { if (debug) cerr << "PT 1\n"; /* DELETE */ } { if (debug > 1) cerr << "neg remainder\n"; /* DELETE */ } } else /* DELETE */ { /* DELETE */ { if (debug) cerr << "PT 2\n"; /* DELETE */ } } /* DELETE */ /* Make v (the divisor) positive. The sign of the quotient will be negative if the sign of the divisor and dividend do not match, else positive. */ if (v.isneg()) { { if (debug) cerr << "PT 3\n"; /* DELETE */ } negquotient = !negremainder; v = -v; } else { /* DELETE */ { if (debug) cerr << "PT 4\n"; /* DELETE */ } negquotient = negremainder; } /* DELETE */ { if (debug > 1) cerr << (negquotient ? "negquotient\n" : ""); /* DELETE */ } // set local variables for (int m_n = 4, uoffset = 0; uoffset < 4 && u.s[uoffset] == 0; m_n--, uoffset++) { /* DELETE */ { if (debug) cerr << "PT 5\n"; /* DELETE */ } ; } /* DELETE */ for (int n = 4, voffset = 0; voffset < 4 && v.s[voffset] == 0; n--, voffset++) { /* DELETE */ { if (debug) cerr << "PT 6\n"; /* DELETE */ } ; } /* DELETE */ int m = m_n - n; { if (debug > 1) cerr << "m=" << m <<", n=" << n << ", m_n=" << m_n << "\n"; /* DELETE */ } /* If n == 0, then division by zero */ if (n == 0) { { if (debug) cerr << "PT 7\n"; /* DELETE */ } { if (debug > 1) cerr << "division by zero\n"; /* DELETE */ } error("division by zero!"); quotient = remainder = u; return; } /* For n == 1, use simpler algorithm */ else if (n == 1) { { if (debug) cerr << "PT 8\n"; /* DELETE */ } { if (debug > 1) cerr << "n==1\n"; /* DELETE */ } // See Exercise 16 after Section 4.3.1 LINT q = 0; LINT_Ltype prevu = 0; LINT_type v1 = v.s[3]; for (int r = uoffset; r < m_n + uoffset; r++) { { if (debug) cerr << "PT 9\n"; /* DELETE */ } LINT_Ltype t = u.s[r] + prevu * LINT_base; LINT_type tmpq = LINT_type (t / v1); q.s[r] = tmpq; // % LINT_base prevu = t - v1 * tmpq; } if (negquotient) { /* DELETE */ { if (debug) cerr << "PT 10\n"; /* DELETE */ } quotient = -q; } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 11\n"; /* DELETE */ } quotient = q; } /* DELETE */ if (negremainder) { /* DELETE */ { if (debug) cerr << "PT 12\n"; /* DELETE */ } remainder = -prevu; } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 13\n"; /* DELETE */ } remainder = prevu; } /* DELETE */ return; } /* Degenerate case of length(u) < length(v) i.e., m < 0, implying that u < v */ else if (m_n < n) { { if (debug) cerr << "PT 14\n"; /* DELETE */ } { if (debug > 1) cerr << "m_n < n\n"; /* DELETE */ } quotient = 0L; if (negremainder) { /* DELETE */ { if (debug) cerr << "PT 15\n"; /* DELETE */ } remainder = -u; } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 16\n"; /* DELETE */ } remainder = u; } /* DELETE */ return; } /* Degenerate case of length(u) == length(v) i.e., m == 0, possibly implying that u < v or u == v */ else if (m_n == n) { { if (debug) cerr << "PT 17\n"; /* DELETE */ } { if (debug > 1) cerr << "m_n == n\n"; /* DELETE */ } int cmp = LINT_cmp(&u.s[uoffset], &v.s[voffset], m_n); if (cmp < 0) // u < v { { if (debug) cerr << "PT 18\n"; /* DELETE */ } { if (debug > 1) cerr << "cmp < 0\n"; /* DELETE */ } quotient = 0L; if (negremainder) { /* DELETE */ { if (debug) cerr << "PT 19\n"; /* DELETE */ } remainder = -u; } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 20\n"; /* DELETE */ } remainder = u; } /* DELETE */ return; } else if (cmp == 0) // u == v { { if (debug) cerr << "PT 21\n"; /* DELETE */ } { if (debug > 1) cerr << "cmp == 0\n"; /* DELETE */ } if (negquotient) { /* DELETE */ { if (debug) cerr << "PT 22\n"; /* DELETE */ } quotient = -1L; } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 23\n"; /* DELETE */ } quotient = 1L; } /* DELETE */ remainder = 0L; return; } else /* DELETE */ { /* DELETE */ { if (debug) cerr << "PT 24\n"; /* DELETE */ } } /* DELETE */ } else /* DELETE */ { /* DELETE */ { if (debug) cerr << "PT 25\n"; /* DELETE */ } } /* DELETE */ /* Now call out all of the guns from Knuth */ /* D1(a) [Normalize.] Set d <- b/(v1+1). */ LINT_type d = LINT_base / (v.s[voffset] + 1); { if (debug > 1) cerr << "d=" << form("0x%4.4x", d) << "\n"; /* DELETE */ } /* D1(b) [Normalize.] Set (u[0]u[1]...u[m+n]) to (u[1]u[2]...u[m+n])*d */ LINT_type uv[5]; LINT_type k; if (d == 1) { { if (debug) cerr << "PT 26\n"; /* DELETE */ } { if (debug > 1) cerr << "d == 1, copy old u value\n"; /* DELETE */ } // copy old value uv[0] = 0; memcpy((char*)&uv[1], (char*)&u.s[uoffset], m_n * sizeof(LINT_type)); } else { { if (debug) cerr << "PT 27\n"; /* DELETE */ } { if (debug > 1) cerr << "multiply u by d\n"; /* DELETE */ } // multiply u by d k = 0; for (int Oi = m_n - 1 + uoffset, i = m_n; i > 0; Oi--, i--) { { if (debug) cerr << "PT 28\n"; /* DELETE */ } LINT_Ltype t = u.s[Oi] * d + k; uv[i] = t; // % LINT_base k = t / LINT_base; { if (debug > 1) cerr << "done setting u.s[" << Oi << "], uv[" << i << "] = " << form("0x%4.4x", uv[i]) << "\n"; /* DELETE */ } } uv[i] = k; } { if (debug > 1) { cerr << "uv=0x"; for (int jj=0; jj <= m_n; jj++) cerr << form("%4.4x", uv[jj]); cerr << "\n"; } /* DELETE */ } /* D1(c) [Normalize.] Set (v[1]v[2]...v[n]) to (v[1]v[2]...v[n]) * d */ LINT_type vv[4]; if (d == 1) { { if (debug) cerr << "PT 29\n"; /* DELETE */ } { if (debug > 1) cerr << "d == 1, copy old v value\n"; /* DELETE */ } // copy old value memcpy((char*)&vv[0], (char*)&v.s[voffset], n * sizeof(LINT_type)); } else { { if (debug) cerr << "PT 30\n"; /* DELETE */ } { if (debug > 1) cerr << "multiply v by d\n"; /* DELETE */ } // multiply v by d k = 0; for (int Oi = n - 1 + voffset, i = n - 1; i >= 0; Oi--, i--) { { if (debug) cerr << "PT 31\n"; /* DELETE */ } LINT_Ltype t = v.s[Oi] * d + k; vv[i] = t; // % LINT_base; k = t / LINT_base; { if (debug > 1) cerr << "done setting v.s[" << Oi << "], vv[" << i << "] = " << form("0x%4.4x", vv[i]) << "\n"; /* DELETE */ } } } { if (debug > 1) { cerr << "vv=0x"; for (int jj=0; jj < n; jj++) cerr << form("%4.4x", vv[jj]); cerr << "\n"; } /* DELETE */ } /* D2 [Initialize j] Set j <- 0 D7 [Loop on j] Set j <- j+1 Loop if j <= m */ LINT_type v1 = vv[0]; LINT_type v2 = vv[1]; { if (debug > 1) cerr << "v1=" << form("0x%4.4x", v1) << ", v2=" << form("0x%4.4x", v2) << "\n"; /* DELETE */ } LINT_type qv[5]; for (int j = 0; j <= m; j++) { { if (debug) cerr << "PT 32\n"; /* DELETE */ } { if (debug > 1) cerr << "j=" << j << "\n"; /* DELETE */ } /* D3 [Calculate q^] If u[j] == v[1] Set q^ <- base - 1 Else Set q^ <- (u[j] * base + u[j+1]) / v[1] While v[2] * q^ > (u[j] * base + u[j+1] - q^ * v[1]) * base + u[j+2] Set q^ <- q^ - 1 */ LINT_Ltype q_hat; if (uv[j] == v1) { /* DELETE */ { if (debug) cerr << "PT 33\n"; /* DELETE */ } q_hat = LINT_base - 1; { if (debug > 1) cerr << "uv[" << j << "]=" << form("0x%4.4x", uv[j]) << " == v1, q^=" << form("0x%4.4x", q_hat) << "\n"; /* DELETE */ } } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 34\n"; /* DELETE */ } q_hat = (uv[j] * LINT_base + uv[j+1]) / v1; { if (debug > 1) cerr << "uv[" << j << "]=" << form("0x%4.4x", uv[j]) << " != v1, q^=" << form("0x%4.4x", q_hat) << "\n"; /* DELETE */ } } /* DELETE */ LINT_Ltype u_j = uv[j]; LINT_Ltype u_j1 = uv[j+1]; LINT_Ltype u_j2 = uv[j+2]; for ( ; ; q_hat--) { { if (debug > 1) cerr << "q^=" << form("0x%4.4x", q_hat) << "\n"; /* DELETE */ } /* The following statements build up the following test which combines with the for loop above to give the while statement mentioned in the last comment. if ((v2 * q_hat) <= ((u_j * LINT_base + u_j1 - v1 * q_hat) * LINT_base + u_j2)) q^--; */ // u_j_q_hat = u_j * LINT_base + u_j1 union { LINT_Ltype L[2]; LINT_type S[4]; } u_j_q_hat; u_j_q_hat.L[0] = 0; u_j_q_hat.S[2] = u_j; u_j_q_hat.S[3] = u_j1; // ... - v1 * q_hat u_j_q_hat.L[1] -= v1 * q_hat; if (u_j_q_hat.S[2] != 0) break; // ... * LINT_base u_j_q_hat.S[2] = u_j_q_hat.S[3]; // ... + u_j2 u_j_q_hat.S[2] = u_j2; if ((v2 * q_hat) <= u_j_q_hat.L[1]) break; { if (debug) cerr << "PT 35\n"; /* DELETE */ } { if (debug > 1) cerr << "q^--\n"; /* DELETE */ } } /* D4 [Multiply and subtract.] Replace u[j..j+n] by u[j..j+n] - q^ * v[1..n] */ // set nv <- q^ * (v[1..n]) LINT_type nv[5]; k = 0; for (int dl = n, vl = n-1; vl >= 0; vl--, dl--) { { if (debug) cerr << "PT 36\n"; /* DELETE */ } LINT_Ltype t = vv[vl] * q_hat + k; nv[dl] = t; // % LINT_base; k = t / LINT_base; { if (debug > 1) cerr << "done setting nv[" << dl << "] = " << form("0x%4.4x", nv[dl]) << ", vv[" << vl << "] = " << form("0x%4.4x", vv[vl]) << "\n"; /* DELETE */ } } nv[0] = k; { if (debug > 1) cerr << "done setting nv[" << dl << "] = " << form("0x%4.4x", nv[dl]) << "\n"; /* DELETE */ } { if (debug > 1) { cerr << "nv=0x"; for (int jj=0; jj <= n; jj++) cerr << form("%4.4x", nv[jj]); cerr << "\n"; } /* DELETE */ } // subtract nv[0..n] from u[j..j+n] int borrow = 0; int ul = j + n; { if (debug > 1) cerr << "ul=" << ul << ", dl=" << n << "\n"; /* DELETE */ } for (dl = n; dl >= 0; dl--, ul--) { { if (debug) cerr << "PT 37\n"; /* DELETE */ } LINT_Ltype t = uv[ul] - nv[dl] - borrow; uv[ul] = t; // % LINT_base borrow = (t / LINT_base) ? 1 : 0; { if (debug > 1) cerr << "done setting uv[" << ul << "] = " << form("0x%4.4x", uv[ul]) << "\n"; /* DELETE */ } } { if (debug > 1) { cerr << "uv=0x"; for (int jj=0; jj <= m_n; jj++) cerr << form("%4.4x", uv[jj]); cerr << "\n"; } /* DELETE */ } { if (debug > 1) cerr << "borrow=" << borrow << "\n"; /* DELETE */ } /* D5 [Test remainder] Set q[j] <- q^ if u[j] < 0 D6 [Add back] add 0v[1..n] back to u[j..j+n] q[j]-- */ qv[j] = q_hat; { if (debug > 1) cerr << "qv[" << j << "] = " << form("0x%4.4x", qv[j]) << "\n"; /* DELETE */ } if (borrow != 0) { { if (debug) cerr << "PT 38\n"; /* DELETE */ } { if (debug > 1) cerr << "borrow != 0, add v back to u\n"; /* DELETE */ } for (k = 0, ul = j + n, vl = n - 1; vl >= 0; vl--, ul--) { { if (debug) cerr << "PT 39\n"; /* DELETE */ } LINT_Ltype t = uv[ul] + vv[vl] + k; uv[ul] = t; // % LINT_base { if (debug > 1) cerr << "done setting uv[" << ul << "] = " << form("0x%4.4x", uv[ul]) << "\n"; /* DELETE */ } k = t / LINT_base; } uv[j] += k; { if (debug > 1) cerr << "done setting uv[" << ul << "] = " << form("0x%4.4x", uv[ul]) << "\n"; /* DELETE */ } { if (debug > 1) { cerr << "uv=0x"; for (int jj=0; jj <= m_n; jj++) cerr << form("%4.4x", uv[jj]); cerr << "\n"; } /* DELETE */ } qv[j]--; { if (debug > 1) cerr << "qv[" << j << "] = " << form("0x%4.4x", qv[j]) << "\n"; /* DELETE */ } } else /* DELETE */ { /* DELETE */ { if (debug) cerr << "PT 40\n"; /* DELETE */ } } /* DELETE */ } /* D8 [Unnormalize] q[0..m] is quotient u[m+1..m+n] / d is remainder */ LINT q = 0; memcpy((char*)&q.s[3-m], (char*)&qv[0], (m+1) * sizeof(LINT_type)); { if (debug > 1) cerr << "q = " << q << "\n"; /* DELETE */ } if (negquotient) { /* DELETE */ { if (debug) cerr << "PT 41\n"; /* DELETE */ } quotient = -q; } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 42\n"; /* DELETE */ } quotient = q; } /* DELETE */ // divide u[m+1..m+n] by d LINT r = 0; { if (debug > 1) { cerr << "uv[m+1..m+n]=0x"; for (int jj=m+1; jj <= m_n; jj++) cerr << form("%4.4x", uv[jj]); cerr << "\n"; } /* DELETE */ } if (d == 1) // nothing special to do { /* DELETE */ { if (debug) cerr << "PT 43\n"; /* DELETE */ } memcpy((char*)&r.s[4 - n], (char*)&uv[m + 1], n * sizeof(LINT_type)); } /* DELETE */ else { { if (debug) cerr << "PT 44\n"; /* DELETE */ } LINT_Ltype prevu = 0; // do division by single digit for (int rl = 4 - n, ul = m + 1; ul <= m_n; ul++, rl++) { { if (debug) cerr << "PT 45\n"; /* DELETE */ } LINT_Ltype t = uv[ul] + prevu * LINT_base; LINT_type tmpq = t / d; r.s[rl] = tmpq; // % LINT_base prevu = t - d * tmpq; } } { if (debug > 1) cerr << "r = " << r << "\n"; /* DELETE */ } if (negremainder) { /* DELETE */ { if (debug) cerr << "PT 46\n"; /* DELETE */ } remainder = -r; } /* DELETE */ else { /* DELETE */ { if (debug) cerr << "PT 47\n"; /* DELETE */ } remainder = r; } /* DELETE */ } LINT operator%(LINT u, LINT v) { LINT quot, rem; dodivmod(u, v, quot, rem); return rem; } LINT operator/(LINT u, LINT v) { LINT quot, rem; dodivmod(u, v, quot, rem); return quot; } !EOF! ls -l 6_10div.c echo x - 6_10eq.c sed 's/^X//' > 6_10eq.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Assignment operators for type LINT */ #include LINT& LINT::operator= (LINT j) // x = y; { for (int i = 0; i < 4; i++) s[i] = j.s[i]; return *this; } LINT& LINT::operator= (int j) // x = 5; { if (j < 0) s[0] = s[1] = ~0; else s[0] = s[1] = 0; s[2] = (unsigned int) j / LINT_base; s[3] = (unsigned int) j % LINT_base; return *this; } LINT& LINT::operator= (long j) // x = 5L; { if (j < 0) s[0] = s[1] = ~0; else s[0] = s[1] = 0; s[2] = (unsigned long) j / LINT_base; s[3] = (unsigned long) j % LINT_base; return *this; } !EOF! ls -l 6_10eq.c echo x - 6_10in.c sed 's/^X//' > 6_10in.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ // Input a LINT. // Convert a string of signed digits into a LINT. // Hex and octal prefixes are allowed. #include #include #include // convert hexadecimal 0-9, a-f, A-F // to its numeric value inline int hexvalue(char c) { if (isdigit(c)) return c - '0'; else if (c >= 'a' && c <= 'f') return c - 'a' + 10; else return c - 'A' + 10; } // return true if c is an octal digit inline int isodigit(int c) { return isdigit(c) && c < '8'; } // perform: i = i * base - newdigit static void addonedigit(LINT_type *i_s, int multiplier, int addend) { // i *= base // almost identical to that used // for operator* LINT_Ltype k = 0; for (int l = 3; ; ) { // cerr << "l=" << l << "\n"; /* DELETE */ // cerr << "k=" << form("0x%8.8x", k) << "\n"; /* DELETE */ // cerr << "s[l]=" << form("0x%4.4x", s[l]) << "\n"; /* DELETE */ LINT_Ltype t = i_s[l]; t *= multiplier; t += k; // cerr << "t=" << form("0x%8.8x", t) << "\n"; /* DELETE */ i_s[l] = t; // % LINT_base if (--l < 0) break; k = t / LINT_base; } // i -= addend // almost identical to that used // for operator- k = addend; for (l = 3; ; ) { // cerr << "l=" << l << "\n"; /* DELETE */ // cerr << "k=" << form("0x%8.8x", k) << "\n"; /* DELETE */ // cerr << "s[l]=" << form("0x%4.4x", s[l]) << "\n"; /* DELETE */ LINT_Ltype t = i_s[l] - k; // cerr << "t=" << form("0x%8.8x", t) << "\n"; /* DELETE */ i_s[l] = t; if (--l < 0) break; k = (t / LINT_base) ? 1 : 0; } } istream& operator>> (istream& in, LINT& i) { char c, sign = 0; i = 0; // cerr << "starting input\n"; /* DELETE */ in >> WS; // skip white space if (!in.get(c)) return in; // cerr << "got character '" << chr(c) << "'\n"; /* DELETE */ switch (c) // remember the sign { case '+': case '-': sign = c; // cerr << "got sign\n"; /* DELETE */ if (!in.get(c)) return in; // cerr << "got character '" << chr(c) << "'\n"; /* DELETE */ break; } switch (c) { case '0': // hex or octal // cerr << "hex or octal\n"; /* DELETE */ if (!in.get(c)) break; // cerr << "got character '" << chr(c) << "'\n"; /* DELETE */ switch (c) { case 'x': // hex number case 'X': // cerr << "hex\n"; /* DELETE */ for (in.get(c); in && isxdigit(c); in.get(c)) addonedigit(i.s, 16, hexvalue(c)); break; default: // octal number // cerr << "octal\n"; /* DELETE */ for ( ; in && isodigit(c); in.get(c)) addonedigit(i.s, 8, (c - '0')); break; } break; default: // decimal number // cerr << "decimal\n"; /* DELETE */ for ( ; in && isdigit(c); in.get(c)) addonedigit(i.s, 10, (c - '0')); break; } if (in) { /* DELETE */ // cerr << "putting back '" << chr(c) << "'\n"; /* DELETE */ in.putback(c); } /* DELETE */ if (sign != '-') { /* DELETE */ // cerr << "positive number\n"; /* DELETE */ i = -i; } /* DELETE */ return in; } !EOF! ls -l 6_10in.c echo x - 6_10min.c sed 's/^X//' > 6_10min.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Subtract u[1..n] - v[1..n] to form w[0..n] The Art of Computer Programming, volume 2 D. Knuth, Section 4.3.1, Algorithm S */ #include LINT operator-(LINT u, LINT v) { LINT w; /* S1 [Initialize] set j <- n k <- 0 */ for (int j = 3, k = 0; ; ) { /* S2(a) [Subtract digits] set w[j] <- (u[j] - v[j] + k) mod b */ LINT_Ltype t = u.s[j]; t -= v.s[j]; t -= k; w.s[j] = t; // % LINT_base /* S3 [Loop on j] decrease j by one */ if (--j < 0) break; /* S2(b) k <- (u[j] - v[j] + k) / b */ k = (t / LINT_base) ? 1 : 0; } return w; } !EOF! ls -l 6_10min.c echo x - 6_10mul.c sed 's/^X//' > 6_10mul.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Multiply u[1..n] * v[1..m] to form w[0..m+n] Based on: The Art of Computer Programming, volume 2 D. Knuth, Section 4.3.1, Algorithm M modified to ignore w[0..m] */ #include LINT operator*(LINT u, LINT v) { int negans = 0; /* Make u positive */ if (u.isneg()) { negans = 1; u = -u; } /* Make v positive */ if (v.isneg()) { negans = 1 - negans; v = -v; } /* M1(a) [Initialize] Set w[m+1..m+n] <- 0 { modified: set w[0..n] <- 0 } */ LINT w = 0; /* M1(b) [Initialize] Set j <- m M6 [Loop on j] decrease j by one if j > 0, goto M2 */ for (int j = 3; j >= 0; j--) { /* M2 [zero multiplier?] if v[j] == 0 w[j] <- 0 goto M6 { modified: skip w[j] since 0<=j 0, goto M4 { modified: loop on i+j > 0, i+j= 0; i--, iplusj--) { /* M4 [multiply and add] Set t <- u[i] * v[j] + w[i+j] + k w[i+j] <- t % b k <- t / b { modified: i+j tracks i } */ LINT_Ltype t = u.s[i] * v_j + w.s[iplusj] + k; w.s[iplusj] = t; // % LINT_base k = t / LINT_base; } /* M5(b) [Loop on i] if i <= 0, set w[j] <- k { modified: skip setting w[j], since j 6_10neg.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Negate u[1..n] to form w[0..n] Uses a variation on: The Art of Computer Programming, volume 2 D. Knuth, Section 4.3.1, Algorithm A */ #include LINT operator-(LINT u) { LINT w; /* A1 [Initialize] set j <- n k <- 0 becomes k <- 1 */ LINT_Ltype k = 1; for (int j = 3; ; ) { /* A2(a) [Add digits] set w[j] <- (u[j] + v[j] + k) mod b becomes set w[j] <- (~u[j] + k) mod b */ // cerr << "u=" << form("%4.4x", u.s[j]) << "\n"; /* DELETE */ LINT_type l1 = ~u.s[j]; LINT_Ltype l = l1 + k; // cerr << "l=" << form("%4.4x", l) << "\n"; /* DELETE */ w.s[j] = l; // % LINT_base // cerr << "w=" << form("%4.4x", w.s[j]) << "\n"; /* DELETE */ /* A3 [Loop on j] decrease j by one */ if (--j < 0) break; /* A2(b) k <- (u[j] + v[j] + k) / b */ k = (l / LINT_base) ? 1 : 0; // cerr << "k=" << form("%4.4x", k) << "\n"; /* DELETE */ } /* A3(b) Set w[0] <- k { modification: ignore overflow into w[0] } */ return w; } !EOF! ls -l 6_10neg.c echo x - 6_10out.c sed 's/^X//' > 6_10out.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Output a type LINT to the given stream. */ #include ostream& operator<< (ostream& out, LINT j) { out << form("0x%4.4x%4.4x%4.4x%4.4x, ", /* DELETE */ j.s[0], j.s[1], j.s[2], j.s[3]); /* DELETE */ LINT val = j; // reverse sign of negative numbers if (j.isneg()) { val = -j; out << "-"; } // check for the easy single precision case if (val.s[0] == 0 && val.s[1] == 0) { LINT_Ltype l = val.s[2] * LINT_base + val.s[3]; out << l; } else { // output can be stored in 5 "hyper-decimal" digits, // each digit holding a value 0..9999. LINT_type a[5], *p = a; const LINT_type dec_base = 10000; // store "digits" in reverse order do { // *p++ = val % 10000 // val /= 10000; LINT_Ltype prevu = 0; for (int r = 0; r < 4; r++) { LINT_Ltype tmp = val.s[r] + prevu * LINT_base; LINT_type tmpq = tmp / dec_base; val.s[r] = tmpq; // % LINT_base prevu = tmp - dec_base * tmpq; } *p++ = prevu; } while (val.s[3] || val.s[2] || val.s[1] || val.s[0]); // val != 0 // Output digits in forward order. // All but first digit must be 4 decimal // digits in lengths, including leading zeros. out << *--p; while (--p >= a) out << form("%4.4u", *p); } return out; } !EOF! ls -l 6_10out.c echo x - 6_10pos.c sed 's/^X//' > 6_10pos.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* The unary plus operator on type LINT. */ #include LINT operator+(LINT j) { return j; } !EOF! ls -l 6_10pos.c echo x - 6_10tst.c sed 's/^X//' > 6_10tst.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ #include #include #include "lint.h" unsigned long iarray[] = { 0, 1, // 2, // 3, // 4, // 5, // 6, // 17, // 1234, // 0x1234, // 12345, 0x12345, // 12345678, 0x12345678, MAXINT, 0xFFFFFFFF }; const int sziarray = sizeof(iarray)/sizeof(iarray[0]); LINT Parray[sziarray*sziarray], Narray[sziarray*sziarray]; int szarray = 0; void init() { for (int i = 0; i < sziarray; i++) for (int j = 0; j < sziarray; j++) Parray[szarray++] = LINT(iarray[i], iarray[j]); for (i = 0; i < szarray; i++) Narray[i] = -Parray[i]; } void testdiv(LINT *A, LINT *B) { for (int i = 0; i < szarray; i++) for (int j = 1; j < szarray; j++) { LINT quot, rem; dodivmod(A[i], B[j], quot, rem); cout << A[i] << " / " << B[j] << " = " << quot << "\n"; cout << A[i] << " % " << B[j] << " = " << rem << "\n"; } } void testmul(LINT *A, LINT *B) { for (int i = 0; i < szarray; i++) for (int j = 0; j < szarray; j++) { LINT prod = A[i] * B[j]; cout << A[i] << " * " << B[j] << " = " << prod << "\n"; } } void testadd(LINT *A, LINT *B) { for (int i = 0; i < szarray; i++) for (int j = 0; j < szarray; j++) { LINT sum = A[i] + B[j]; cout << A[i] << " + " << B[j] << " = " << sum << "\n"; } } void testsub(LINT *A, LINT *B) { for (int i = 0; i < szarray; i++) for (int j = 0; j < szarray; j++) { LINT diff = A[i] - B[j]; cout << A[i] << " - " << B[j] << " = " << diff << "\n"; } } void testneg(LINT *A) { for (int i = 0; i < szarray; i++) { LINT neg = -A[i]; cout << " - " << A[i] << " = " << neg << "\n"; } } void testpos(LINT *A) { for (int i = 0; i < szarray; i++) { LINT pos = +A[i]; cout << " 0 + " << A[i] << " = " << pos << "\n"; } } void testsuite(LINT *A, LINT *B) { testadd(A, B); testsub(A, B); testmul(A, B); testdiv(A, B); testneg(A); testpos(A); } main(int, char **) { init(); // for (int i = 0; i < szarray; i++) // cerr << "Parray[" << i << "]=" << Parray[i] << "\n"; // for (i = 0; i < szarray; i++) // cerr << "Narray[" << i << "]=" << Narray[i] << "\n"; testsuite(Parray, Parray); // testsuite(Parray, Narray); // testsuite(Narray, Parray); // testsuite(Narray, Narray); return 0; } !EOF! ls -l 6_10tst.c echo x - 6_10tst2.c sed 's/^X//' > 6_10tst2.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ #include #include #include "lint.h" main() { LINT x = 0; while (cin) { cin >> x; cout << "x=" << x << "\n"; } return 0; } !EOF! ls -l 6_10tst2.c echo x - 6_10tst3.c sed 's/^X//' > 6_10tst3.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ #include #include #include #include "lint.h" void testdiv(LINT A, LINT B) { LINT quot = A / B; cout << A << " / " << B << " = " << quot << "\n"; } void testmod(LINT A, LINT B) { LINT rem = A % B; cout << A << " % " << B << " = " << rem << "\n"; } void testdivmod(LINT A, LINT B) { LINT quot, rem; dodivmod(A, B, quot, rem); cout << A << " / " << B << " = " << quot << "\n"; cout << A << " % " << B << " = " << rem << "\n"; } void testmul(LINT A, LINT B) { LINT prod = A * B; cout << A << " * " << B << " = " << prod << "\n"; } void testadd(LINT A, LINT B) { LINT sum = A + B; cout << A << " + " << B << " = " << sum << "\n"; } void testsub(LINT A, LINT B) { LINT diff = A - B; cout << A << " - " << B << " = " << diff << "\n"; } void testneg(LINT A) { LINT neg = -A; cout << " 0, 0 - " << A << " = " << neg << "\n"; } void testpos(LINT A) { LINT pos = +A; cout << " 0, 0 + " << A << " = " << pos << "\n"; } inline int eq(char*s1, char*s2) { return (strcmp(s1, s2) == 0); } main() { LINT x = 0, y = 0; char op[100]; while (cin >> x >> op >> y) { if (eq(op, "+")) testadd(x, y); else if (eq(op, "-")) testsub(x, y); else if (eq(op, "*")) testmul(x, y); else if (eq(op, "/")) testdiv(x, y); else if (eq(op, "%")) testmod(x, y); else if (eq(op, "/%")) testdivmod(x, y); else if (eq(op, "--")) testneg(x); else if (eq(op, "++")) testpos(x); else cout << "unknown operator\n"; } return 0; } !EOF! ls -l 6_10tst3.c echo x - 6_10x1.c sed 's/^X//' > 6_10x1.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ LINT_Ltype l = LINT_Ltype(u.u.s[j]) + LINT_Ltype(v.u.s[j]) + k; !EOF! ls -l 6_10x1.c echo x - 6_10x2.c sed 's/^X//' > 6_10x2.c << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ LINT_Ltype l = (u.u.s[j] & 0xFFFF) + (v.u.s[j] & 0xFFFF) + k; !EOF! ls -l 6_10x2.c echo x - lint.h sed 's/^X//' > lint.h << '!EOF!' /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ /* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */ /* The C++ Answer Book */ /* Tony Hansen */ /* All rights reserved. */ // Define a 64 bit integer class // Exercise 6.10 #ifndef LINT_H #define LINT_H #include #include #include typedef unsigned short LINT_type; typedef unsigned long LINT_Ltype; #include "6_10a2.h" /* DELETE LINT_base */ class LINT { LINT_type s[4]; #include "6_10a4.h" /* DELETE isneg() */ friend int LINT_cmp(const LINT_type *l1, const LINT_type *l2, int n); /* DELETE */ public: #include "6_10a5.h" /* DELETE dodivmod() */ LINT (); // LINT x; LINT (int j); // LINT x = 3; LINT (long j); // LINT x = 3L; LINT (unsigned int j); // LINT x = 3; LINT (unsigned long j); // LINT x = 3L; LINT (LINT& j); // LINT x = LINT LINT (unsigned long, unsigned long); /* DELETE */ ~LINT (); LINT& operator= (LINT j); // x = y; LINT& operator= (int j); // x = 5; LINT& operator= (long j); // x = 5L; friend LINT operator+ (LINT i, LINT j); friend LINT operator+ (LINT j); friend LINT operator- (LINT i, LINT j); friend LINT operator- (LINT j); friend LINT operator* (LINT i, LINT j); friend LINT operator/ (LINT i, LINT j); friend LINT operator% (LINT i, LINT j); friend ostream& operator<< (ostream& out, LINT j); friend istream& operator>> (istream& in, LINT& j); }; #endif /* LINT_H */ !EOF! ls -l lint.h echo x - makefile sed 's/^X//' > makefile << '!EOF!' CC= CC -I. -I../../CC CFLAGS= -I. ERROR= ../../error.a SRC= 6_10cons.c 6_10eq.c 6_10add.c 6_10cmp.c 6_10pos.c \ 6_10min.c 6_10neg.c 6_10mul.c 6_10div.c 6_10out.c 6_10in.c OBJ= $(SRC:.c=.o) all: 6_10tst3 6_10tst2 6_10tst 6_10tst3: 6_10tst3.o $(OBJ) $(CC) 6_10tst3.o $(OBJ) -o 6_10tst3 $(ERROR) 6_10tst2: 6_10tst2.o $(OBJ) $(CC) 6_10tst2.o $(OBJ) -o 6_10tst2 $(ERROR) $(OBJ): lint.h 6_10tst: 6_10tst.o $(OBJ) $(CC) 6_10tst.o $(OBJ) -o 6_10tst $(ERROR) 6_10all.o: 6_10all.c \ lint.h 6_10a4.h 6_10a5.h \ 6_10cons.c 6_10eq.c \ 6_10add.c 6_10pos.c 6_10min.c 6_10neg.c 6_10mul.c 6_10div.c \ 6_10out.c 6_10in.c 6_10tst.o: 6_10tst.c lint.h tst2: lint.h 6_10cons.c 6_10eq.c 6_10out.c $(CC) +i -g 6_10tst2.c -o 6_10tst2 CMP= tstA.cmp tstB.cmp tst1.cmp tst2.cmp tst3.cmp tst4.cmp tst5.cmp tst6.cmp IN= tstB.in tst1.in tst2.in tst3.in tst4.in tst5.in tst6.in OUT= tstA.out tstB.out tst1.out tst2.out tst3.out tst4.out tst5.out tst6.out tstA.out: 6_10tst ; 6_10tst > tstA.out tstB.out: 6_10tst2 tstB.in ; 6_10tst2 < tstB.in > tstB.out tst1.out: 6_10tst3 tst1.in ; 6_10tst3 < tst1.in > tst1.out tst2.out: 6_10tst3 tst2.in ; 6_10tst3 < tst2.in > tst2.out tst3.out: 6_10tst3 tst3.in ; 6_10tst3 < tst3.in > tst3.out tst4.out: 6_10tst3 tst4.in ; 6_10tst3 < tst4.in > tst4.out tst5.out: 6_10tst3 tst5.in ; 6_10tst3 < tst5.in > tst5.out tst6.out: 6_10tst3 tst6.in ; 6_10tst3 < tst6.in > tst6.out test: all $(OUT) $(CMP) $(IN) cmp tstA.out tstA.cmp cmp tstB.out tstB.cmp cmp tst1.out tst1.cmp cmp tst2.out tst2.cmp cmp tst3.out tst3.cmp cmp tst4.out tst4.cmp cmp tst5.out tst5.cmp cmp tst6.out tst6.cmp echo tests done tst2.in: tst1.in ; sed 's/+/-/' < tst1.in > tst2.in tst3.in: tst1.in ; sed 's/+/-/' < tst1.in > tst3.in tst4.in: tst1.in ; sed 's/+/-/' < tst1.in > tst4.in tst5.in: tst1.in ; sed 's/+/-/' < tst1.in > tst5.in tst6.in: tst1.in ; sed 's/+/-/' < tst1.in > tst6.in !EOF! ls -l makefile echo x - runtests3 sed 's/^X//' > runtests3 << '!EOF!' if [ $# -ne 0 ] then echo sed cp tst.in /tmp/tst.in.plus sed 's!+!-!' < /tmp/tst.in.plus > /tmp/tst.in.min sed 's!+!*!' < /tmp/tst.in.plus > /tmp/tst.in.mult sed 's!+!/!' < /tmp/tst.in.plus > /tmp/tst.in.div sed 's!+!%!' < /tmp/tst.in.plus > /tmp/tst.in.mod for i in plus min mult div mod do echo bc $i bc < /tmp/tst.in.$i > /tmp/tst.bc.$i echo swap $i awk '{print $3, $2, $1}' < /tmp/tst.in.$i > /tmp/tst.in.swap$i echo bc swap $i bc < /tmp/tst.in.swap$i > /tmp/tst.bc.swap$i done fi for i in plus swapplus min swapmin mult swapmult div swapdiv mod swapmod do echo $i ./6_10tst3 < /tmp/tst.in.$i > /tmp/tst.out.$i paste /tmp/tst.out.$i /tmp/tst.bc.$i | awk 'NF != 9 || $8 != $9' done !EOF! ls -l runtests3 echo x - tst1.cmp sed 's/^X//' > tst1.cmp << '!EOF!' 0x0000000000003b39, 15161 + 0x0000000000000dba, 3514 = 0x00000000000048f3, 18675 0x0000000000003e62, 15970 + 0x000000000000281d, 10269 = 0x000000000000667f, 26239 0x00000000000031c2, 12738 + 0x000000000000502d, 20525 = 0x00000000000081ef, 33263 0x00000000000017e5, 6117 + 0x0000000000000f15, 3861 = 0x00000000000026fa, 9978 0x0000000000005fdd, 24541 + 0x0000000000005653, 22099 = 0x000000000000b630, 46640 0x0000000000005d8b, 23947 + 0x0000000000000e2b, 3627 = 0x0000000000006bb6, 27574 0x000000000000016c, 364 + 0x0000000000000c40, 3136 = 0x0000000000000dac, 3500 0x0000000000003e73, 15987 + 0x0000000000000b7a, 2938 = 0x00000000000049ed, 18925 0x0000000000001d18, 7448 + 0x0000000000006004, 24580 = 0x0000000000007d1c, 32028 0x0000000000005996, 22934 + 0x0000000000007a0c, 31244 = 0x000000000000d3a2, 54178 0x0000000000004820, 18464 + 0x0000000000004784, 18308 = 0x0000000000008fa4, 36772 0x000000000000446d, 17517 + 0x0000000000001918, 6424 = 0x0000000000005d85, 23941 0x0000000000005ae5, 23269 + 0x0000000000004817, 18455 = 0x000000000000a2fc, 41724 0x0000000000005060, 20576 + 0x0000000000006afb, 27387 = 0x000000000000bb5b, 47963 0x0000000000006231, 25137 + 0x0000000000005be0, 23520 = 0x000000000000be11, 48657 0x0000000000003af2, 15090 + 0x0000000000001ff8, 8184 = 0x0000000000005aea, 23274 0x000000000000594b, 22859 + 0x00000000000050ee, 20718 = 0x000000000000aa39, 43577 0x00000000000034ad, 13485 + 0x00000000000070b0, 28848 = 0x000000000000a55d, 42333 0x00000000000078bb, 30907 + 0x0000000000007e15, 32277 = 0x000000000000f6d0, 63184 0x0000000000006ace, 27342 + 0x0000000000002460, 9312 = 0x0000000000008f2e, 36654 !EOF! ls -l tst1.cmp echo x - tst1.in sed 's/^X//' > tst1.in << '!EOF!' 15161 + 3514 15970 + 10269 12738 + 20525 6117 + 3861 24541 + 22099 23947 + 3627 364 + 3136 15987 + 2938 7448 + 24580 22934 + 31244 18464 + 18308 17517 + 6424 23269 + 18455 20576 + 27387 25137 + 23520 15090 + 8184 22859 + 20718 13485 + 28848 30907 + 32277 27342 + 9312 !EOF! ls -l tst1.in echo x - tst2.cmp sed 's/^X//' > tst2.cmp << '!EOF!' 0x0000000000003b39, 15161 - 0x0000000000000dba, 3514 = 0x0000000000002d7f, 11647 0x0000000000003e62, 15970 - 0x000000000000281d, 10269 = 0x0000000000001645, 5701 0x00000000000031c2, 12738 - 0x000000000000502d, 20525 = 0xffffffffffffe195, -7787 0x00000000000017e5, 6117 - 0x0000000000000f15, 3861 = 0x00000000000008d0, 2256 0x0000000000005fdd, 24541 - 0x0000000000005653, 22099 = 0x000000000000098a, 2442 0x0000000000005d8b, 23947 - 0x0000000000000e2b, 3627 = 0x0000000000004f60, 20320 0x000000000000016c, 364 - 0x0000000000000c40, 3136 = 0xfffffffffffff52c, -2772 0x0000000000003e73, 15987 - 0x0000000000000b7a, 2938 = 0x00000000000032f9, 13049 0x0000000000001d18, 7448 - 0x0000000000006004, 24580 = 0xffffffffffffbd14, -17132 0x0000000000005996, 22934 - 0x0000000000007a0c, 31244 = 0xffffffffffffdf8a, -8310 0x0000000000004820, 18464 - 0x0000000000004784, 18308 = 0x000000000000009c, 156 0x000000000000446d, 17517 - 0x0000000000001918, 6424 = 0x0000000000002b55, 11093 0x0000000000005ae5, 23269 - 0x0000000000004817, 18455 = 0x00000000000012ce, 4814 0x0000000000005060, 20576 - 0x0000000000006afb, 27387 = 0xffffffffffffe565, -6811 0x0000000000006231, 25137 - 0x0000000000005be0, 23520 = 0x0000000000000651, 1617 0x0000000000003af2, 15090 - 0x0000000000001ff8, 8184 = 0x0000000000001afa, 6906 0x000000000000594b, 22859 - 0x00000000000050ee, 20718 = 0x000000000000085d, 2141 0x00000000000034ad, 13485 - 0x00000000000070b0, 28848 = 0xffffffffffffc3fd, -15363 0x00000000000078bb, 30907 - 0x0000000000007e15, 32277 = 0xfffffffffffffaa6, -1370 0x0000000000006ace, 27342 - 0x0000000000002460, 9312 = 0x000000000000466e, 18030 !EOF! ls -l tst2.cmp echo x - tst2.in sed 's/^X//' > tst2.in << '!EOF!' 15161 - 3514 15970 - 10269 12738 - 20525 6117 - 3861 24541 - 22099 23947 - 3627 364 - 3136 15987 - 2938 7448 - 24580 22934 - 31244 18464 - 18308 17517 - 6424 23269 - 18455 20576 - 27387 25137 - 23520 15090 - 8184 22859 - 20718 13485 - 28848 30907 - 32277 27342 - 9312 !EOF! ls -l tst2.in echo x - tst3.cmp sed 's/^X//' > tst3.cmp << '!EOF!' 0x0000000000003b39, 15161 - 0x0000000000000dba, 3514 = 0x0000000000002d7f, 11647 0x0000000000003e62, 15970 - 0x000000000000281d, 10269 = 0x0000000000001645, 5701 0x00000000000031c2, 12738 - 0x000000000000502d, 20525 = 0xffffffffffffe195, -7787 0x00000000000017e5, 6117 - 0x0000000000000f15, 3861 = 0x00000000000008d0, 2256 0x0000000000005fdd, 24541 - 0x0000000000005653, 22099 = 0x000000000000098a, 2442 0x0000000000005d8b, 23947 - 0x0000000000000e2b, 3627 = 0x0000000000004f60, 20320 0x000000000000016c, 364 - 0x0000000000000c40, 3136 = 0xfffffffffffff52c, -2772 0x0000000000003e73, 15987 - 0x0000000000000b7a, 2938 = 0x00000000000032f9, 13049 0x0000000000001d18, 7448 - 0x0000000000006004, 24580 = 0xffffffffffffbd14, -17132 0x0000000000005996, 22934 - 0x0000000000007a0c, 31244 = 0xffffffffffffdf8a, -8310 0x0000000000004820, 18464 - 0x0000000000004784, 18308 = 0x000000000000009c, 156 0x000000000000446d, 17517 - 0x0000000000001918, 6424 = 0x0000000000002b55, 11093 0x0000000000005ae5, 23269 - 0x0000000000004817, 18455 = 0x00000000000012ce, 4814 0x0000000000005060, 20576 - 0x0000000000006afb, 27387 = 0xffffffffffffe565, -6811 0x0000000000006231, 25137 - 0x0000000000005be0, 23520 = 0x0000000000000651, 1617 0x0000000000003af2, 15090 - 0x0000000000001ff8, 8184 = 0x0000000000001afa, 6906 0x000000000000594b, 22859 - 0x00000000000050ee, 20718 = 0x000000000000085d, 2141 0x00000000000034ad, 13485 - 0x00000000000070b0, 28848 = 0xffffffffffffc3fd, -15363 0x00000000000078bb, 30907 - 0x0000000000007e15, 32277 = 0xfffffffffffffaa6, -1370 0x0000000000006ace, 27342 - 0x0000000000002460, 9312 = 0x000000000000466e, 18030 !EOF! ls -l tst3.cmp echo x - tst3.in sed 's/^X//' > tst3.in << '!EOF!' 15161 - 3514 15970 - 10269 12738 - 20525 6117 - 3861 24541 - 22099 23947 - 3627 364 - 3136 15987 - 2938 7448 - 24580 22934 - 31244 18464 - 18308 17517 - 6424 23269 - 18455 20576 - 27387 25137 - 23520 15090 - 8184 22859 - 20718 13485 - 28848 30907 - 32277 27342 - 9312 !EOF! ls -l tst3.in echo x - tst4.cmp sed 's/^X//' > tst4.cmp << '!EOF!' 0x0000000000003b39, 15161 - 0x0000000000000dba, 3514 = 0x0000000000002d7f, 11647 0x0000000000003e62, 15970 - 0x000000000000281d, 10269 = 0x0000000000001645, 5701 0x00000000000031c2, 12738 - 0x000000000000502d, 20525 = 0xffffffffffffe195, -7787 0x00000000000017e5, 6117 - 0x0000000000000f15, 3861 = 0x00000000000008d0, 2256 0x0000000000005fdd, 24541 - 0x0000000000005653, 22099 = 0x000000000000098a, 2442 0x0000000000005d8b, 23947 - 0x0000000000000e2b, 3627 = 0x0000000000004f60, 20320 0x000000000000016c, 364 - 0x0000000000000c40, 3136 = 0xfffffffffffff52c, -2772 0x0000000000003e73, 15987 - 0x0000000000000b7a, 2938 = 0x00000000000032f9, 13049 0x0000000000001d18, 7448 - 0x0000000000006004, 24580 = 0xffffffffffffbd14, -17132 0x0000000000005996, 22934 - 0x0000000000007a0c, 31244 = 0xffffffffffffdf8a, -8310 0x0000000000004820, 18464 - 0x0000000000004784, 18308 = 0x000000000000009c, 156 0x000000000000446d, 17517 - 0x0000000000001918, 6424 = 0x0000000000002b55, 11093 0x0000000000005ae5, 23269 - 0x0000000000004817, 18455 = 0x00000000000012ce, 4814 0x0000000000005060, 20576 - 0x0000000000006afb, 27387 = 0xffffffffffffe565, -6811 0x0000000000006231, 25137 - 0x0000000000005be0, 23520 = 0x0000000000000651, 1617 0x0000000000003af2, 15090 - 0x0000000000001ff8, 8184 = 0x0000000000001afa, 6906 0x000000000000594b, 22859 - 0x00000000000050ee, 20718 = 0x000000000000085d, 2141 0x00000000000034ad, 13485 - 0x00000000000070b0, 28848 = 0xffffffffffffc3fd, -15363 0x00000000000078bb, 30907 - 0x0000000000007e15, 32277 = 0xfffffffffffffaa6, -1370 0x0000000000006ace, 27342 - 0x0000000000002460, 9312 = 0x000000000000466e, 18030 !EOF! ls -l tst4.cmp echo x - tst4.in sed 's/^X//' > tst4.in << '!EOF!' 15161 - 3514 15970 - 10269 12738 - 20525 6117 - 3861 24541 - 22099 23947 - 3627 364 - 3136 15987 - 2938 7448 - 24580 22934 - 31244 18464 - 18308 17517 - 6424 23269 - 18455 20576 - 27387 25137 - 23520 15090 - 8184 22859 - 20718 13485 - 28848 30907 - 32277 27342 - 9312 !EOF! ls -l tst4.in echo x - tst5.cmp sed 's/^X//' > tst5.cmp << '!EOF!' 0x0000000000003b39, 15161 - 0x0000000000000dba, 3514 = 0x0000000000002d7f, 11647 0x0000000000003e62, 15970 - 0x000000000000281d, 10269 = 0x0000000000001645, 5701 0x00000000000031c2, 12738 - 0x000000000000502d, 20525 = 0xffffffffffffe195, -7787 0x00000000000017e5, 6117 - 0x0000000000000f15, 3861 = 0x00000000000008d0, 2256 0x0000000000005fdd, 24541 - 0x0000000000005653, 22099 = 0x000000000000098a, 2442 0x0000000000005d8b, 23947 - 0x0000000000000e2b, 3627 = 0x0000000000004f60, 20320 0x000000000000016c, 364 - 0x0000000000000c40, 3136 = 0xfffffffffffff52c, -2772 0x0000000000003e73, 15987 - 0x0000000000000b7a, 2938 = 0x00000000000032f9, 13049 0x0000000000001d18, 7448 - 0x0000000000006004, 24580 = 0xffffffffffffbd14, -17132 0x0000000000005996, 22934 - 0x0000000000007a0c, 31244 = 0xffffffffffffdf8a, -8310 0x0000000000004820, 18464 - 0x0000000000004784, 18308 = 0x000000000000009c, 156 0x000000000000446d, 17517 - 0x0000000000001918, 6424 = 0x0000000000002b55, 11093 0x0000000000005ae5, 23269 - 0x0000000000004817, 18455 = 0x00000000000012ce, 4814 0x0000000000005060, 20576 - 0x0000000000006afb, 27387 = 0xffffffffffffe565, -6811 0x0000000000006231, 25137 - 0x0000000000005be0, 23520 = 0x0000000000000651, 1617 0x0000000000003af2, 15090 - 0x0000000000001ff8, 8184 = 0x0000000000001afa, 6906 0x000000000000594b, 22859 - 0x00000000000050ee, 20718 = 0x000000000000085d, 2141 0x00000000000034ad, 13485 - 0x00000000000070b0, 28848 = 0xffffffffffffc3fd, -15363 0x00000000000078bb, 30907 - 0x0000000000007e15, 32277 = 0xfffffffffffffaa6, -1370 0x0000000000006ace, 27342 - 0x0000000000002460, 9312 = 0x000000000000466e, 18030 !EOF! ls -l tst5.cmp echo x - tst5.in sed 's/^X//' > tst5.in << '!EOF!' 15161 - 3514 15970 - 10269 12738 - 20525 6117 - 3861 24541 - 22099 23947 - 3627 364 - 3136 15987 - 2938 7448 - 24580 22934 - 31244 18464 - 18308 17517 - 6424 23269 - 18455 20576 - 27387 25137 - 23520 15090 - 8184 22859 - 20718 13485 - 28848 30907 - 32277 27342 - 9312 !EOF! ls -l tst5.in echo x - tst6.cmp sed 's/^X//' > tst6.cmp << '!EOF!' 0x0000000000003b39, 15161 - 0x0000000000000dba, 3514 = 0x0000000000002d7f, 11647 0x0000000000003e62, 15970 - 0x000000000000281d, 10269 = 0x0000000000001645, 5701 0x00000000000031c2, 12738 - 0x000000000000502d, 20525 = 0xffffffffffffe195, -7787 0x00000000000017e5, 6117 - 0x0000000000000f15, 3861 = 0x00000000000008d0, 2256 0x0000000000005fdd, 24541 - 0x0000000000005653, 22099 = 0x000000000000098a, 2442 0x0000000000005d8b, 23947 - 0x0000000000000e2b, 3627 = 0x0000000000004f60, 20320 0x000000000000016c, 364 - 0x0000000000000c40, 3136 = 0xfffffffffffff52c, -2772 0x0000000000003e73, 15987 - 0x0000000000000b7a, 2938 = 0x00000000000032f9, 13049 0x0000000000001d18, 7448 - 0x0000000000006004, 24580 = 0xffffffffffffbd14, -17132 0x0000000000005996, 22934 - 0x0000000000007a0c, 31244 = 0xffffffffffffdf8a, -8310 0x0000000000004820, 18464 - 0x0000000000004784, 18308 = 0x000000000000009c, 156 0x000000000000446d, 17517 - 0x0000000000001918, 6424 = 0x0000000000002b55, 11093 0x0000000000005ae5, 23269 - 0x0000000000004817, 18455 = 0x00000000000012ce, 4814 0x0000000000005060, 20576 - 0x0000000000006afb, 27387 = 0xffffffffffffe565, -6811 0x0000000000006231, 25137 - 0x0000000000005be0, 23520 = 0x0000000000000651, 1617 0x0000000000003af2, 15090 - 0x0000000000001ff8, 8184 = 0x0000000000001afa, 6906 0x000000000000594b, 22859 - 0x00000000000050ee, 20718 = 0x000000000000085d, 2141 0x00000000000034ad, 13485 - 0x00000000000070b0, 28848 = 0xffffffffffffc3fd, -15363 0x00000000000078bb, 30907 - 0x0000000000007e15, 32277 = 0xfffffffffffffaa6, -1370 0x0000000000006ace, 27342 - 0x0000000000002460, 9312 = 0x000000000000466e, 18030 !EOF! ls -l tst6.cmp echo x - tst6.in sed 's/^X//' > tst6.in << '!EOF!' 15161 - 3514 15970 - 10269 12738 - 20525 6117 - 3861 24541 - 22099 23947 - 3627 364 - 3136 15987 - 2938 7448 - 24580 22934 - 31244 18464 - 18308 17517 - 6424 23269 - 18455 20576 - 27387 25137 - 23520 15090 - 8184 22859 - 20718 13485 - 28848 30907 - 32277 27342 - 9312 !EOF! ls -l tst6.in echo x - tstA.cmp sed 's/^X//' > tstA.cmp << '!EOF!' 0x0000000000000000, 0 + 0x0000000000000000, 0 = 0x0000000000000000, 0 0x0000000000000000, 0 + 0x0000000000000001, 1 = 0x0000000000000001, 1 0x0000000000000000, 0 + 0x0000000000012345, 74565 = 0x0000000000012345, 74565 0x0000000000000000, 0 + 0x0000000012345678, 305419896 = 0x0000000012345678, 305419896 0x0000000000000000, 0 + 0x000000007fffffff, 2147483647 = 0x000000007fffffff, 2147483647 0x0000000000000000, 0 + 0x00000000ffffffff, 4294967295 = 0x00000000ffffffff, 4294967295 0x0000000000000000, 0 + 0x0000000100000000, 4294967296 = 0x0000000100000000, 4294967296 0x0000000000000000, 0 + 0x0000000100000001, 4294967297 = 0x0000000100000001, 4294967297 0x0000000000000000, 0 + 0x0000000100012345, 4295041861 = 0x0000000100012345, 4295041861 0x0000000000000000, 0 + 0x0000000112345678, 4600387192 = 0x0000000112345678, 4600387192 0x0000000000000000, 0 + 0x000000017fffffff, 6442450943 = 0x000000017fffffff, 6442450943 0x0000000000000000, 0 + 0x00000001ffffffff, 8589934591 = 0x00000001ffffffff, 8589934591 0x0000000000000000, 0 + 0x0001234500000000, 320254236426240 = 0x0001234500000000, 320254236426240 0x0000000000000000, 0 + 0x0001234500000001, 320254236426241 = 0x0001234500000001, 320254236426241 0x0000000000000000, 0 + 0x0001234500012345, 320254236500805 = 0x0001234500012345, 320254236500805 0x0000000000000000, 0 + 0x0001234512345678, 320254541846136 = 0x0001234512345678, 320254541846136 0x0000000000000000, 0 + 0x000123457fffffff, 320256383909887 = 0x000123457fffffff, 320256383909887 0x0000000000000000, 0 + 0x00012345ffffffff, 320258531393535 = 0x00012345ffffffff, 320258531393535 0x0000000000000000, 0 + 0x1234567800000000, 1311768464867721216 = 0x1234567800000000, 1311768464867721216 0x0000000000000000, 0 + 0x1234567800000001, 1311768464867721217 = 0x1234567800000001, 1311768464867721217 0x0000000000000000, 0 + 0x1234567800012345, 1311768464867795781 = 0x1234567800012345, 1311768464867795781 0x0000000000000000, 0 + 0x1234567812345678, 1311768465173141112 = 0x1234567812345678, 1311768465173141112 0x0000000000000000, 0 + 0x123456787fffffff, 1311768467015204863 = 0x123456787fffffff, 1311768467015204863 0x0000000000000000, 0 + 0x12345678ffffffff, 1311768469162688511 = 0x12345678ffffffff, 1311768469162688511 0x0000000000000000, 0 + 0x7fffffff00000000, 9223372032559808512 = 0x7fffffff00000000, 9223372032559808512 0x0000000000000000, 0 + 0x7fffffff00000001, 9223372032559808513 = 0x7fffffff00000001, 9223372032559808513 0x0000000000000000, 0 + 0x7fffffff00012345, 9223372032559883077 = 0x7fffffff00012345, 9223372032559883077 0x0000000000000000, 0 + 0x7fffffff12345678, 9223372032865228408 = 0x7fffffff12345678, 9223372032865228408 0x0000000000000000, 0 + 0x7fffffff7fffffff, 9223372034707292159 = 0x7fffffff7fffffff, 9223372034707292159 0x0000000000000000, 0 + 0x7fffffffffffffff, 9223372036854775807 = 0x7fffffffffffffff, 9223372036854775807 0x0000000000000000, 0 + 0xffffffff00000000, -4294967296 = 0xffffffff00000000, -4294967296 0x0000000000000000, 0 + 0xffffffff00000001, -4294967295 = 0xffffffff00000001, -4294967295 0x0000000000000000, 0 + 0xffffffff00012345, -4294892731 = 0xffffffff00012345, -4294892731 0x0000000000000000, 0 + 0xffffffff12345678, -3989547400 = 0xffffffff12345678, -3989547400 0x0000000000000000, 0 + 0xffffffff7fffffff, -2147483649 = 0xffffffff7fffffff, -2147483649 0x0000000000000000, 0 + 0xffffffffffffffff, -1 = 0xffffffffffffffff, -1 0x0000000000000001, 1 + 0x0000000000000000, 0 = 0x0000000000000001, 1 0x0000000000000001, 1 + 0x0000000000000001, 1 = 0x0000000000000002, 2 0x0000000000000001, 1 + 0x0000000000012345, 74565 = 0x0000000000012346, 74566 0x0000000000000001, 1 + 0x0000000012345678, 305419896 = 0x0000000012345679, 305419897 0x0000000000000001, 1 + 0x000000007fffffff, 2147483647 = 0x0000000080000000, 2147483648 0x0000000000000001, 1 + 0x00000000ffffffff, 4294967295 = 0x0000000100000000, 4294967296 0x0000000000000001, 1 + 0x0000000100000000, 4294967296 = 0x0000000100000001, 4294967297 0x0000000000000001, 1 + 0x0000000100000001, 4294967297 = 0x0000000100000002, 4294967298 0x0000000000000001, 1 + 0x0000000100012345, 4295041861 = 0x0000000100012346, 4295041862 0x0000000000000001, 1 + 0x0000000112345678, 4600387192 = 0x0000000112345679, 4600387193 0x0000000000000001, 1 + 0x000000017fffffff, 6442450943 = 0x0000000180000000, 6442450944 0x0000000000000001, 1 + 0x00000001ffffffff, 8589934591 = 0x0000000200000000, 8589934592 0x0000000000000001, 1 + 0x0001234500000000, 320254236426240 = 0x0001234500000001, 320254236426241 0x0000000000000001, 1 + 0x0001234500000001, 320254236426241 = 0x0001234500000002, 320254236426242 0x0000000000000001, 1 + 0x0001234500012345, 320254236500805 = 0x0001234500012346, 320254236500806 0x0000000000000001, 1 + 0x0001234512345678, 320254541846136 = 0x0001234512345679, 320254541846137 0x0000000000000001, 1 + 0x000123457fffffff, 320256383909887 = 0x0001234580000000, 320256383909888 0x0000000000000001, 1 + 0x00012345ffffffff, 320258531393535 = 0x0001234600000000, 320258531393536 0x0000000000000001, 1 + 0x1234567800000000, 1311768464867721216 = 0x1234567800000001, 1311768464867721217 0x0000000000000001, 1 + 0x1234567800000001, 1311768464867721217 = 0x1234567800000002, 1311768464867721218 0x0000000000000001, 1 + 0x1234567800012345, 1311768464867795781 = 0x1234567800012346, 1311768464867795782 0x0000000000000001, 1 + 0x1234567812345678, 1311768465173141112 = 0x1234567812345679, 1311768465173141113 0x0000000000000001, 1 + 0x123456787fffffff, 1311768467015204863 = 0x1234567880000000, 1311768467015204864 0x0000000000000001, 1 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567900000000, 1311768469162688512 0x0000000000000001, 1 + 0x7fffffff00000000, 9223372032559808512 = 0x7fffffff00000001, 9223372032559808513 0x0000000000000001, 1 + 0x7fffffff00000001, 9223372032559808513 = 0x7fffffff00000002, 9223372032559808514 0x0000000000000001, 1 + 0x7fffffff00012345, 9223372032559883077 = 0x7fffffff00012346, 9223372032559883078 0x0000000000000001, 1 + 0x7fffffff12345678, 9223372032865228408 = 0x7fffffff12345679, 9223372032865228409 0x0000000000000001, 1 + 0x7fffffff7fffffff, 9223372034707292159 = 0x7fffffff80000000, 9223372034707292160 0x0000000000000001, 1 + 0x7fffffffffffffff, 9223372036854775807 = 0x8000000000000000, -9223372036854775808 0x0000000000000001, 1 + 0xffffffff00000000, -4294967296 = 0xffffffff00000001, -4294967295 0x0000000000000001, 1 + 0xffffffff00000001, -4294967295 = 0xffffffff00000002, -4294967294 0x0000000000000001, 1 + 0xffffffff00012345, -4294892731 = 0xffffffff00012346, -4294892730 0x0000000000000001, 1 + 0xffffffff12345678, -3989547400 = 0xffffffff12345679, -3989547399 0x0000000000000001, 1 + 0xffffffff7fffffff, -2147483649 = 0xffffffff80000000, -2147483648 0x0000000000000001, 1 + 0xffffffffffffffff, -1 = 0x0000000000000000, 0 0x0000000000012345, 74565 + 0x0000000000000000, 0 = 0x0000000000012345, 74565 0x0000000000012345, 74565 + 0x0000000000000001, 1 = 0x0000000000012346, 74566 0x0000000000012345, 74565 + 0x0000000000012345, 74565 = 0x000000000002468a, 149130 0x0000000000012345, 74565 + 0x0000000012345678, 305419896 = 0x00000000123579bd, 305494461 0x0000000000012345, 74565 + 0x000000007fffffff, 2147483647 = 0x0000000080012344, 2147558212 0x0000000000012345, 74565 + 0x00000000ffffffff, 4294967295 = 0x0000000100012344, 4295041860 0x0000000000012345, 74565 + 0x0000000100000000, 4294967296 = 0x0000000100012345, 4295041861 0x0000000000012345, 74565 + 0x0000000100000001, 4294967297 = 0x0000000100012346, 4295041862 0x0000000000012345, 74565 + 0x0000000100012345, 4295041861 = 0x000000010002468a, 4295116426 0x0000000000012345, 74565 + 0x0000000112345678, 4600387192 = 0x00000001123579bd, 4600461757 0x0000000000012345, 74565 + 0x000000017fffffff, 6442450943 = 0x0000000180012344, 6442525508 0x0000000000012345, 74565 + 0x00000001ffffffff, 8589934591 = 0x0000000200012344, 8590009156 0x0000000000012345, 74565 + 0x0001234500000000, 320254236426240 = 0x0001234500012345, 320254236500805 0x0000000000012345, 74565 + 0x0001234500000001, 320254236426241 = 0x0001234500012346, 320254236500806 0x0000000000012345, 74565 + 0x0001234500012345, 320254236500805 = 0x000123450002468a, 320254236575370 0x0000000000012345, 74565 + 0x0001234512345678, 320254541846136 = 0x00012345123579bd, 320254541920701 0x0000000000012345, 74565 + 0x000123457fffffff, 320256383909887 = 0x0001234580012344, 320256383984452 0x0000000000012345, 74565 + 0x00012345ffffffff, 320258531393535 = 0x0001234600012344, 320258531468100 0x0000000000012345, 74565 + 0x1234567800000000, 1311768464867721216 = 0x1234567800012345, 1311768464867795781 0x0000000000012345, 74565 + 0x1234567800000001, 1311768464867721217 = 0x1234567800012346, 1311768464867795782 0x0000000000012345, 74565 + 0x1234567800012345, 1311768464867795781 = 0x123456780002468a, 1311768464867870346 0x0000000000012345, 74565 + 0x1234567812345678, 1311768465173141112 = 0x12345678123579bd, 1311768465173215677 0x0000000000012345, 74565 + 0x123456787fffffff, 1311768467015204863 = 0x1234567880012344, 1311768467015279428 0x0000000000012345, 74565 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567900012344, 1311768469162763076 0x0000000000012345, 74565 + 0x7fffffff00000000, 9223372032559808512 = 0x7fffffff00012345, 9223372032559883077 0x0000000000012345, 74565 + 0x7fffffff00000001, 9223372032559808513 = 0x7fffffff00012346, 9223372032559883078 0x0000000000012345, 74565 + 0x7fffffff00012345, 9223372032559883077 = 0x7fffffff0002468a, 9223372032559957642 0x0000000000012345, 74565 + 0x7fffffff12345678, 9223372032865228408 = 0x7fffffff123579bd, 9223372032865302973 0x0000000000012345, 74565 + 0x7fffffff7fffffff, 9223372034707292159 = 0x7fffffff80012344, 9223372034707366724 0x0000000000012345, 74565 + 0x7fffffffffffffff, 9223372036854775807 = 0x8000000000012344, -9223372036854701244 0x0000000000012345, 74565 + 0xffffffff00000000, -4294967296 = 0xffffffff00012345, -4294892731 0x0000000000012345, 74565 + 0xffffffff00000001, -4294967295 = 0xffffffff00012346, -4294892730 0x0000000000012345, 74565 + 0xffffffff00012345, -4294892731 = 0xffffffff0002468a, -4294818166 0x0000000000012345, 74565 + 0xffffffff12345678, -3989547400 = 0xffffffff123579bd, -3989472835 0x0000000000012345, 74565 + 0xffffffff7fffffff, -2147483649 = 0xffffffff80012344, -2147409084 0x0000000000012345, 74565 + 0xffffffffffffffff, -1 = 0x0000000000012344, 74564 0x0000000012345678, 305419896 + 0x0000000000000000, 0 = 0x0000000012345678, 305419896 0x0000000012345678, 305419896 + 0x0000000000000001, 1 = 0x0000000012345679, 305419897 0x0000000012345678, 305419896 + 0x0000000000012345, 74565 = 0x00000000123579bd, 305494461 0x0000000012345678, 305419896 + 0x0000000012345678, 305419896 = 0x000000002468acf0, 610839792 0x0000000012345678, 305419896 + 0x000000007fffffff, 2147483647 = 0x0000000092345677, 2452903543 0x0000000012345678, 305419896 + 0x00000000ffffffff, 4294967295 = 0x0000000112345677, 4600387191 0x0000000012345678, 305419896 + 0x0000000100000000, 4294967296 = 0x0000000112345678, 4600387192 0x0000000012345678, 305419896 + 0x0000000100000001, 4294967297 = 0x0000000112345679, 4600387193 0x0000000012345678, 305419896 + 0x0000000100012345, 4295041861 = 0x00000001123579bd, 4600461757 0x0000000012345678, 305419896 + 0x0000000112345678, 4600387192 = 0x000000012468acf0, 4905807088 0x0000000012345678, 305419896 + 0x000000017fffffff, 6442450943 = 0x0000000192345677, 6747870839 0x0000000012345678, 305419896 + 0x00000001ffffffff, 8589934591 = 0x0000000212345677, 8895354487 0x0000000012345678, 305419896 + 0x0001234500000000, 320254236426240 = 0x0001234512345678, 320254541846136 0x0000000012345678, 305419896 + 0x0001234500000001, 320254236426241 = 0x0001234512345679, 320254541846137 0x0000000012345678, 305419896 + 0x0001234500012345, 320254236500805 = 0x00012345123579bd, 320254541920701 0x0000000012345678, 305419896 + 0x0001234512345678, 320254541846136 = 0x000123452468acf0, 320254847266032 0x0000000012345678, 305419896 + 0x000123457fffffff, 320256383909887 = 0x0001234592345677, 320256689329783 0x0000000012345678, 305419896 + 0x00012345ffffffff, 320258531393535 = 0x0001234612345677, 320258836813431 0x0000000012345678, 305419896 + 0x1234567800000000, 1311768464867721216 = 0x1234567812345678, 1311768465173141112 0x0000000012345678, 305419896 + 0x1234567800000001, 1311768464867721217 = 0x1234567812345679, 1311768465173141113 0x0000000012345678, 305419896 + 0x1234567800012345, 1311768464867795781 = 0x12345678123579bd, 1311768465173215677 0x0000000012345678, 305419896 + 0x1234567812345678, 1311768465173141112 = 0x123456782468acf0, 1311768465478561008 0x0000000012345678, 305419896 + 0x123456787fffffff, 1311768467015204863 = 0x1234567892345677, 1311768467320624759 0x0000000012345678, 305419896 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567912345677, 1311768469468108407 0x0000000012345678, 305419896 + 0x7fffffff00000000, 9223372032559808512 = 0x7fffffff12345678, 9223372032865228408 0x0000000012345678, 305419896 + 0x7fffffff00000001, 9223372032559808513 = 0x7fffffff12345679, 9223372032865228409 0x0000000012345678, 305419896 + 0x7fffffff00012345, 9223372032559883077 = 0x7fffffff123579bd, 9223372032865302973 0x0000000012345678, 305419896 + 0x7fffffff12345678, 9223372032865228408 = 0x7fffffff2468acf0, 9223372033170648304 0x0000000012345678, 305419896 + 0x7fffffff7fffffff, 9223372034707292159 = 0x7fffffff92345677, 9223372035012712055 0x0000000012345678, 305419896 + 0x7fffffffffffffff, 9223372036854775807 = 0x8000000012345677, -9223372036549355913 0x0000000012345678, 305419896 + 0xffffffff00000000, -4294967296 = 0xffffffff12345678, -3989547400 0x0000000012345678, 305419896 + 0xffffffff00000001, -4294967295 = 0xffffffff12345679, -3989547399 0x0000000012345678, 305419896 + 0xffffffff00012345, -4294892731 = 0xffffffff123579bd, -3989472835 0x0000000012345678, 305419896 + 0xffffffff12345678, -3989547400 = 0xffffffff2468acf0, -3684127504 0x0000000012345678, 305419896 + 0xffffffff7fffffff, -2147483649 = 0xffffffff92345677, -1842063753 0x0000000012345678, 305419896 + 0xffffffffffffffff, -1 = 0x0000000012345677, 305419895 0x000000007fffffff, 2147483647 + 0x0000000000000000, 0 = 0x000000007fffffff, 2147483647 0x000000007fffffff, 2147483647 + 0x0000000000000001, 1 = 0x0000000080000000, 2147483648 0x000000007fffffff, 2147483647 + 0x0000000000012345, 74565 = 0x0000000080012344, 2147558212 0x000000007fffffff, 2147483647 + 0x0000000012345678, 305419896 = 0x0000000092345677, 2452903543 0x000000007fffffff, 2147483647 + 0x000000007fffffff, 2147483647 = 0x00000000fffffffe, 4294967294 0x000000007fffffff, 2147483647 + 0x00000000ffffffff, 4294967295 = 0x000000017ffffffe, 6442450942 0x000000007fffffff, 2147483647 + 0x0000000100000000, 4294967296 = 0x000000017fffffff, 6442450943 0x000000007fffffff, 2147483647 + 0x0000000100000001, 4294967297 = 0x0000000180000000, 6442450944 0x000000007fffffff, 2147483647 + 0x0000000100012345, 4295041861 = 0x0000000180012344, 6442525508 0x000000007fffffff, 2147483647 + 0x0000000112345678, 4600387192 = 0x0000000192345677, 6747870839 0x000000007fffffff, 2147483647 + 0x000000017fffffff, 6442450943 = 0x00000001fffffffe, 8589934590 0x000000007fffffff, 2147483647 + 0x00000001ffffffff, 8589934591 = 0x000000027ffffffe, 10737418238 0x000000007fffffff, 2147483647 + 0x0001234500000000, 320254236426240 = 0x000123457fffffff, 320256383909887 0x000000007fffffff, 2147483647 + 0x0001234500000001, 320254236426241 = 0x0001234580000000, 320256383909888 0x000000007fffffff, 2147483647 + 0x0001234500012345, 320254236500805 = 0x0001234580012344, 320256383984452 0x000000007fffffff, 2147483647 + 0x0001234512345678, 320254541846136 = 0x0001234592345677, 320256689329783 0x000000007fffffff, 2147483647 + 0x000123457fffffff, 320256383909887 = 0x00012345fffffffe, 320258531393534 0x000000007fffffff, 2147483647 + 0x00012345ffffffff, 320258531393535 = 0x000123467ffffffe, 320260678877182 0x000000007fffffff, 2147483647 + 0x1234567800000000, 1311768464867721216 = 0x123456787fffffff, 1311768467015204863 0x000000007fffffff, 2147483647 + 0x1234567800000001, 1311768464867721217 = 0x1234567880000000, 1311768467015204864 0x000000007fffffff, 2147483647 + 0x1234567800012345, 1311768464867795781 = 0x1234567880012344, 1311768467015279428 0x000000007fffffff, 2147483647 + 0x1234567812345678, 1311768465173141112 = 0x1234567892345677, 1311768467320624759 0x000000007fffffff, 2147483647 + 0x123456787fffffff, 1311768467015204863 = 0x12345678fffffffe, 1311768469162688510 0x000000007fffffff, 2147483647 + 0x12345678ffffffff, 1311768469162688511 = 0x123456797ffffffe, 1311768471310172158 0x000000007fffffff, 2147483647 + 0x7fffffff00000000, 9223372032559808512 = 0x7fffffff7fffffff, 9223372034707292159 0x000000007fffffff, 2147483647 + 0x7fffffff00000001, 9223372032559808513 = 0x7fffffff80000000, 9223372034707292160 0x000000007fffffff, 2147483647 + 0x7fffffff00012345, 9223372032559883077 = 0x7fffffff80012344, 9223372034707366724 0x000000007fffffff, 2147483647 + 0x7fffffff12345678, 9223372032865228408 = 0x7fffffff92345677, 9223372035012712055 0x000000007fffffff, 2147483647 + 0x7fffffff7fffffff, 9223372034707292159 = 0x7ffffffffffffffe, 9223372036854775806 0x000000007fffffff, 2147483647 + 0x7fffffffffffffff, 9223372036854775807 = 0x800000007ffffffe, -9223372034707292162 0x000000007fffffff, 2147483647 + 0xffffffff00000000, -4294967296 = 0xffffffff7fffffff, -2147483649 0x000000007fffffff, 2147483647 + 0xffffffff00000001, -4294967295 = 0xffffffff80000000, -2147483648 0x000000007fffffff, 2147483647 + 0xffffffff00012345, -4294892731 = 0xffffffff80012344, -2147409084 0x000000007fffffff, 2147483647 + 0xffffffff12345678, -3989547400 = 0xffffffff92345677, -1842063753 0x000000007fffffff, 2147483647 + 0xffffffff7fffffff, -2147483649 = 0xfffffffffffffffe, -2 0x000000007fffffff, 2147483647 + 0xffffffffffffffff, -1 = 0x000000007ffffffe, 2147483646 0x00000000ffffffff, 4294967295 + 0x0000000000000000, 0 = 0x00000000ffffffff, 4294967295 0x00000000ffffffff, 4294967295 + 0x0000000000000001, 1 = 0x0000000100000000, 4294967296 0x00000000ffffffff, 4294967295 + 0x0000000000012345, 74565 = 0x0000000100012344, 4295041860 0x00000000ffffffff, 4294967295 + 0x0000000012345678, 305419896 = 0x0000000112345677, 4600387191 0x00000000ffffffff, 4294967295 + 0x000000007fffffff, 2147483647 = 0x000000017ffffffe, 6442450942 0x00000000ffffffff, 4294967295 + 0x00000000ffffffff, 4294967295 = 0x00000001fffffffe, 8589934590 0x00000000ffffffff, 4294967295 + 0x0000000100000000, 4294967296 = 0x00000001ffffffff, 8589934591 0x00000000ffffffff, 4294967295 + 0x0000000100000001, 4294967297 = 0x0000000200000000, 8589934592 0x00000000ffffffff, 4294967295 + 0x0000000100012345, 4295041861 = 0x0000000200012344, 8590009156 0x00000000ffffffff, 4294967295 + 0x0000000112345678, 4600387192 = 0x0000000212345677, 8895354487 0x00000000ffffffff, 4294967295 + 0x000000017fffffff, 6442450943 = 0x000000027ffffffe, 10737418238 0x00000000ffffffff, 4294967295 + 0x00000001ffffffff, 8589934591 = 0x00000002fffffffe, 12884901886 0x00000000ffffffff, 4294967295 + 0x0001234500000000, 320254236426240 = 0x00012345ffffffff, 320258531393535 0x00000000ffffffff, 4294967295 + 0x0001234500000001, 320254236426241 = 0x0001234600000000, 320258531393536 0x00000000ffffffff, 4294967295 + 0x0001234500012345, 320254236500805 = 0x0001234600012344, 320258531468100 0x00000000ffffffff, 4294967295 + 0x0001234512345678, 320254541846136 = 0x0001234612345677, 320258836813431 0x00000000ffffffff, 4294967295 + 0x000123457fffffff, 320256383909887 = 0x000123467ffffffe, 320260678877182 0x00000000ffffffff, 4294967295 + 0x00012345ffffffff, 320258531393535 = 0x00012346fffffffe, 320262826360830 0x00000000ffffffff, 4294967295 + 0x1234567800000000, 1311768464867721216 = 0x12345678ffffffff, 1311768469162688511 0x00000000ffffffff, 4294967295 + 0x1234567800000001, 1311768464867721217 = 0x1234567900000000, 1311768469162688512 0x00000000ffffffff, 4294967295 + 0x1234567800012345, 1311768464867795781 = 0x1234567900012344, 1311768469162763076 0x00000000ffffffff, 4294967295 + 0x1234567812345678, 1311768465173141112 = 0x1234567912345677, 1311768469468108407 0x00000000ffffffff, 4294967295 + 0x123456787fffffff, 1311768467015204863 = 0x123456797ffffffe, 1311768471310172158 0x00000000ffffffff, 4294967295 + 0x12345678ffffffff, 1311768469162688511 = 0x12345679fffffffe, 1311768473457655806 0x00000000ffffffff, 4294967295 + 0x7fffffff00000000, 9223372032559808512 = 0x7fffffffffffffff, 9223372036854775807 0x00000000ffffffff, 4294967295 + 0x7fffffff00000001, 9223372032559808513 = 0x8000000000000000, -9223372036854775808 0x00000000ffffffff, 4294967295 + 0x7fffffff00012345, 9223372032559883077 = 0x8000000000012344, -9223372036854701244 0x00000000ffffffff, 4294967295 + 0x7fffffff12345678, 9223372032865228408 = 0x8000000012345677, -9223372036549355913 0x00000000ffffffff, 4294967295 + 0x7fffffff7fffffff, 9223372034707292159 = 0x800000007ffffffe, -9223372034707292162 0x00000000ffffffff, 4294967295 + 0x7fffffffffffffff, 9223372036854775807 = 0x80000000fffffffe, -9223372032559808514 0x00000000ffffffff, 4294967295 + 0xffffffff00000000, -4294967296 = 0xffffffffffffffff, -1 0x00000000ffffffff, 4294967295 + 0xffffffff00000001, -4294967295 = 0x0000000000000000, 0 0x00000000ffffffff, 4294967295 + 0xffffffff00012345, -4294892731 = 0x0000000000012344, 74564 0x00000000ffffffff, 4294967295 + 0xffffffff12345678, -3989547400 = 0x0000000012345677, 305419895 0x00000000ffffffff, 4294967295 + 0xffffffff7fffffff, -2147483649 = 0x000000007ffffffe, 2147483646 0x00000000ffffffff, 4294967295 + 0xffffffffffffffff, -1 = 0x00000000fffffffe, 4294967294 0x0000000100000000, 4294967296 + 0x0000000000000000, 0 = 0x0000000100000000, 4294967296 0x0000000100000000, 4294967296 + 0x0000000000000001, 1 = 0x0000000100000001, 4294967297 0x0000000100000000, 4294967296 + 0x0000000000012345, 74565 = 0x0000000100012345, 4295041861 0x0000000100000000, 4294967296 + 0x0000000012345678, 305419896 = 0x0000000112345678, 4600387192 0x0000000100000000, 4294967296 + 0x000000007fffffff, 2147483647 = 0x000000017fffffff, 6442450943 0x0000000100000000, 4294967296 + 0x00000000ffffffff, 4294967295 = 0x00000001ffffffff, 8589934591 0x0000000100000000, 4294967296 + 0x0000000100000000, 4294967296 = 0x0000000200000000, 8589934592 0x0000000100000000, 4294967296 + 0x0000000100000001, 4294967297 = 0x0000000200000001, 8589934593 0x0000000100000000, 4294967296 + 0x0000000100012345, 4295041861 = 0x0000000200012345, 8590009157 0x0000000100000000, 4294967296 + 0x0000000112345678, 4600387192 = 0x0000000212345678, 8895354488 0x0000000100000000, 4294967296 + 0x000000017fffffff, 6442450943 = 0x000000027fffffff, 10737418239 0x0000000100000000, 4294967296 + 0x00000001ffffffff, 8589934591 = 0x00000002ffffffff, 12884901887 0x0000000100000000, 4294967296 + 0x0001234500000000, 320254236426240 = 0x0001234600000000, 320258531393536 0x0000000100000000, 4294967296 + 0x0001234500000001, 320254236426241 = 0x0001234600000001, 320258531393537 0x0000000100000000, 4294967296 + 0x0001234500012345, 320254236500805 = 0x0001234600012345, 320258531468101 0x0000000100000000, 4294967296 + 0x0001234512345678, 320254541846136 = 0x0001234612345678, 320258836813432 0x0000000100000000, 4294967296 + 0x000123457fffffff, 320256383909887 = 0x000123467fffffff, 320260678877183 0x0000000100000000, 4294967296 + 0x00012345ffffffff, 320258531393535 = 0x00012346ffffffff, 320262826360831 0x0000000100000000, 4294967296 + 0x1234567800000000, 1311768464867721216 = 0x1234567900000000, 1311768469162688512 0x0000000100000000, 4294967296 + 0x1234567800000001, 1311768464867721217 = 0x1234567900000001, 1311768469162688513 0x0000000100000000, 4294967296 + 0x1234567800012345, 1311768464867795781 = 0x1234567900012345, 1311768469162763077 0x0000000100000000, 4294967296 + 0x1234567812345678, 1311768465173141112 = 0x1234567912345678, 1311768469468108408 0x0000000100000000, 4294967296 + 0x123456787fffffff, 1311768467015204863 = 0x123456797fffffff, 1311768471310172159 0x0000000100000000, 4294967296 + 0x12345678ffffffff, 1311768469162688511 = 0x12345679ffffffff, 1311768473457655807 0x0000000100000000, 4294967296 + 0x7fffffff00000000, 9223372032559808512 = 0x8000000000000000, -9223372036854775808 0x0000000100000000, 4294967296 + 0x7fffffff00000001, 9223372032559808513 = 0x8000000000000001, -9223372036854775807 0x0000000100000000, 4294967296 + 0x7fffffff00012345, 9223372032559883077 = 0x8000000000012345, -9223372036854701243 0x0000000100000000, 4294967296 + 0x7fffffff12345678, 9223372032865228408 = 0x8000000012345678, -9223372036549355912 0x0000000100000000, 4294967296 + 0x7fffffff7fffffff, 9223372034707292159 = 0x800000007fffffff, -9223372034707292161 0x0000000100000000, 4294967296 + 0x7fffffffffffffff, 9223372036854775807 = 0x80000000ffffffff, -9223372032559808513 0x0000000100000000, 4294967296 + 0xffffffff00000000, -4294967296 = 0x0000000000000000, 0 0x0000000100000000, 4294967296 + 0xffffffff00000001, -4294967295 = 0x0000000000000001, 1 0x0000000100000000, 4294967296 + 0xffffffff00012345, -4294892731 = 0x0000000000012345, 74565 0x0000000100000000, 4294967296 + 0xffffffff12345678, -3989547400 = 0x0000000012345678, 305419896 0x0000000100000000, 4294967296 + 0xffffffff7fffffff, -2147483649 = 0x000000007fffffff, 2147483647 0x0000000100000000, 4294967296 + 0xffffffffffffffff, -1 = 0x00000000ffffffff, 4294967295 0x0000000100000001, 4294967297 + 0x0000000000000000, 0 = 0x0000000100000001, 4294967297 0x0000000100000001, 4294967297 + 0x0000000000000001, 1 = 0x0000000100000002, 4294967298 0x0000000100000001, 4294967297 + 0x0000000000012345, 74565 = 0x0000000100012346, 4295041862 0x0000000100000001, 4294967297 + 0x0000000012345678, 305419896 = 0x0000000112345679, 4600387193 0x0000000100000001, 4294967297 + 0x000000007fffffff, 2147483647 = 0x0000000180000000, 6442450944 0x0000000100000001, 4294967297 + 0x00000000ffffffff, 4294967295 = 0x0000000200000000, 8589934592 0x0000000100000001, 4294967297 + 0x0000000100000000, 4294967296 = 0x0000000200000001, 8589934593 0x0000000100000001, 4294967297 + 0x0000000100000001, 4294967297 = 0x0000000200000002, 8589934594 0x0000000100000001, 4294967297 + 0x0000000100012345, 4295041861 = 0x0000000200012346, 8590009158 0x0000000100000001, 4294967297 + 0x0000000112345678, 4600387192 = 0x0000000212345679, 8895354489 0x0000000100000001, 4294967297 + 0x000000017fffffff, 6442450943 = 0x0000000280000000, 10737418240 0x0000000100000001, 4294967297 + 0x00000001ffffffff, 8589934591 = 0x0000000300000000, 12884901888 0x0000000100000001, 4294967297 + 0x0001234500000000, 320254236426240 = 0x0001234600000001, 320258531393537 0x0000000100000001, 4294967297 + 0x0001234500000001, 320254236426241 = 0x0001234600000002, 320258531393538 0x0000000100000001, 4294967297 + 0x0001234500012345, 320254236500805 = 0x0001234600012346, 320258531468102 0x0000000100000001, 4294967297 + 0x0001234512345678, 320254541846136 = 0x0001234612345679, 320258836813433 0x0000000100000001, 4294967297 + 0x000123457fffffff, 320256383909887 = 0x0001234680000000, 320260678877184 0x0000000100000001, 4294967297 + 0x00012345ffffffff, 320258531393535 = 0x0001234700000000, 320262826360832 0x0000000100000001, 4294967297 + 0x1234567800000000, 1311768464867721216 = 0x1234567900000001, 1311768469162688513 0x0000000100000001, 4294967297 + 0x1234567800000001, 1311768464867721217 = 0x1234567900000002, 1311768469162688514 0x0000000100000001, 4294967297 + 0x1234567800012345, 1311768464867795781 = 0x1234567900012346, 1311768469162763078 0x0000000100000001, 4294967297 + 0x1234567812345678, 1311768465173141112 = 0x1234567912345679, 1311768469468108409 0x0000000100000001, 4294967297 + 0x123456787fffffff, 1311768467015204863 = 0x1234567980000000, 1311768471310172160 0x0000000100000001, 4294967297 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567a00000000, 1311768473457655808 0x0000000100000001, 4294967297 + 0x7fffffff00000000, 9223372032559808512 = 0x8000000000000001, -9223372036854775807 0x0000000100000001, 4294967297 + 0x7fffffff00000001, 9223372032559808513 = 0x8000000000000002, -9223372036854775806 0x0000000100000001, 4294967297 + 0x7fffffff00012345, 9223372032559883077 = 0x8000000000012346, -9223372036854701242 0x0000000100000001, 4294967297 + 0x7fffffff12345678, 9223372032865228408 = 0x8000000012345679, -9223372036549355911 0x0000000100000001, 4294967297 + 0x7fffffff7fffffff, 9223372034707292159 = 0x8000000080000000, -9223372034707292160 0x0000000100000001, 4294967297 + 0x7fffffffffffffff, 9223372036854775807 = 0x8000000100000000, -9223372032559808512 0x0000000100000001, 4294967297 + 0xffffffff00000000, -4294967296 = 0x0000000000000001, 1 0x0000000100000001, 4294967297 + 0xffffffff00000001, -4294967295 = 0x0000000000000002, 2 0x0000000100000001, 4294967297 + 0xffffffff00012345, -4294892731 = 0x0000000000012346, 74566 0x0000000100000001, 4294967297 + 0xffffffff12345678, -3989547400 = 0x0000000012345679, 305419897 0x0000000100000001, 4294967297 + 0xffffffff7fffffff, -2147483649 = 0x0000000080000000, 2147483648 0x0000000100000001, 4294967297 + 0xffffffffffffffff, -1 = 0x0000000100000000, 4294967296 0x0000000100012345, 4295041861 + 0x0000000000000000, 0 = 0x0000000100012345, 4295041861 0x0000000100012345, 4295041861 + 0x0000000000000001, 1 = 0x0000000100012346, 4295041862 0x0000000100012345, 4295041861 + 0x0000000000012345, 74565 = 0x000000010002468a, 4295116426 0x0000000100012345, 4295041861 + 0x0000000012345678, 305419896 = 0x00000001123579bd, 4600461757 0x0000000100012345, 4295041861 + 0x000000007fffffff, 2147483647 = 0x0000000180012344, 6442525508 0x0000000100012345, 4295041861 + 0x00000000ffffffff, 4294967295 = 0x0000000200012344, 8590009156 0x0000000100012345, 4295041861 + 0x0000000100000000, 4294967296 = 0x0000000200012345, 8590009157 0x0000000100012345, 4295041861 + 0x0000000100000001, 4294967297 = 0x0000000200012346, 8590009158 0x0000000100012345, 4295041861 + 0x0000000100012345, 4295041861 = 0x000000020002468a, 8590083722 0x0000000100012345, 4295041861 + 0x0000000112345678, 4600387192 = 0x00000002123579bd, 8895429053 0x0000000100012345, 4295041861 + 0x000000017fffffff, 6442450943 = 0x0000000280012344, 10737492804 0x0000000100012345, 4295041861 + 0x00000001ffffffff, 8589934591 = 0x0000000300012344, 12884976452 0x0000000100012345, 4295041861 + 0x0001234500000000, 320254236426240 = 0x0001234600012345, 320258531468101 0x0000000100012345, 4295041861 + 0x0001234500000001, 320254236426241 = 0x0001234600012346, 320258531468102 0x0000000100012345, 4295041861 + 0x0001234500012345, 320254236500805 = 0x000123460002468a, 320258531542666 0x0000000100012345, 4295041861 + 0x0001234512345678, 320254541846136 = 0x00012346123579bd, 320258836887997 0x0000000100012345, 4295041861 + 0x000123457fffffff, 320256383909887 = 0x0001234680012344, 320260678951748 0x0000000100012345, 4295041861 + 0x00012345ffffffff, 320258531393535 = 0x0001234700012344, 320262826435396 0x0000000100012345, 4295041861 + 0x1234567800000000, 1311768464867721216 = 0x1234567900012345, 1311768469162763077 0x0000000100012345, 4295041861 + 0x1234567800000001, 1311768464867721217 = 0x1234567900012346, 1311768469162763078 0x0000000100012345, 4295041861 + 0x1234567800012345, 1311768464867795781 = 0x123456790002468a, 1311768469162837642 0x0000000100012345, 4295041861 + 0x1234567812345678, 1311768465173141112 = 0x12345679123579bd, 1311768469468182973 0x0000000100012345, 4295041861 + 0x123456787fffffff, 1311768467015204863 = 0x1234567980012344, 1311768471310246724 0x0000000100012345, 4295041861 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567a00012344, 1311768473457730372 0x0000000100012345, 4295041861 + 0x7fffffff00000000, 9223372032559808512 = 0x8000000000012345, -9223372036854701243 0x0000000100012345, 4295041861 + 0x7fffffff00000001, 9223372032559808513 = 0x8000000000012346, -9223372036854701242 0x0000000100012345, 4295041861 + 0x7fffffff00012345, 9223372032559883077 = 0x800000000002468a, -9223372036854626678 0x0000000100012345, 4295041861 + 0x7fffffff12345678, 9223372032865228408 = 0x80000000123579bd, -9223372036549281347 0x0000000100012345, 4295041861 + 0x7fffffff7fffffff, 9223372034707292159 = 0x8000000080012344, -9223372034707217596 0x0000000100012345, 4295041861 + 0x7fffffffffffffff, 9223372036854775807 = 0x8000000100012344, -9223372032559733948 0x0000000100012345, 4295041861 + 0xffffffff00000000, -4294967296 = 0x0000000000012345, 74565 0x0000000100012345, 4295041861 + 0xffffffff00000001, -4294967295 = 0x0000000000012346, 74566 0x0000000100012345, 4295041861 + 0xffffffff00012345, -4294892731 = 0x000000000002468a, 149130 0x0000000100012345, 4295041861 + 0xffffffff12345678, -3989547400 = 0x00000000123579bd, 305494461 0x0000000100012345, 4295041861 + 0xffffffff7fffffff, -2147483649 = 0x0000000080012344, 2147558212 0x0000000100012345, 4295041861 + 0xffffffffffffffff, -1 = 0x0000000100012344, 4295041860 0x0000000112345678, 4600387192 + 0x0000000000000000, 0 = 0x0000000112345678, 4600387192 0x0000000112345678, 4600387192 + 0x0000000000000001, 1 = 0x0000000112345679, 4600387193 0x0000000112345678, 4600387192 + 0x0000000000012345, 74565 = 0x00000001123579bd, 4600461757 0x0000000112345678, 4600387192 + 0x0000000012345678, 305419896 = 0x000000012468acf0, 4905807088 0x0000000112345678, 4600387192 + 0x000000007fffffff, 2147483647 = 0x0000000192345677, 6747870839 0x0000000112345678, 4600387192 + 0x00000000ffffffff, 4294967295 = 0x0000000212345677, 8895354487 0x0000000112345678, 4600387192 + 0x0000000100000000, 4294967296 = 0x0000000212345678, 8895354488 0x0000000112345678, 4600387192 + 0x0000000100000001, 4294967297 = 0x0000000212345679, 8895354489 0x0000000112345678, 4600387192 + 0x0000000100012345, 4295041861 = 0x00000002123579bd, 8895429053 0x0000000112345678, 4600387192 + 0x0000000112345678, 4600387192 = 0x000000022468acf0, 9200774384 0x0000000112345678, 4600387192 + 0x000000017fffffff, 6442450943 = 0x0000000292345677, 11042838135 0x0000000112345678, 4600387192 + 0x00000001ffffffff, 8589934591 = 0x0000000312345677, 13190321783 0x0000000112345678, 4600387192 + 0x0001234500000000, 320254236426240 = 0x0001234612345678, 320258836813432 0x0000000112345678, 4600387192 + 0x0001234500000001, 320254236426241 = 0x0001234612345679, 320258836813433 0x0000000112345678, 4600387192 + 0x0001234500012345, 320254236500805 = 0x00012346123579bd, 320258836887997 0x0000000112345678, 4600387192 + 0x0001234512345678, 320254541846136 = 0x000123462468acf0, 320259142233328 0x0000000112345678, 4600387192 + 0x000123457fffffff, 320256383909887 = 0x0001234692345677, 320260984297079 0x0000000112345678, 4600387192 + 0x00012345ffffffff, 320258531393535 = 0x0001234712345677, 320263131780727 0x0000000112345678, 4600387192 + 0x1234567800000000, 1311768464867721216 = 0x1234567912345678, 1311768469468108408 0x0000000112345678, 4600387192 + 0x1234567800000001, 1311768464867721217 = 0x1234567912345679, 1311768469468108409 0x0000000112345678, 4600387192 + 0x1234567800012345, 1311768464867795781 = 0x12345679123579bd, 1311768469468182973 0x0000000112345678, 4600387192 + 0x1234567812345678, 1311768465173141112 = 0x123456792468acf0, 1311768469773528304 0x0000000112345678, 4600387192 + 0x123456787fffffff, 1311768467015204863 = 0x1234567992345677, 1311768471615592055 0x0000000112345678, 4600387192 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567a12345677, 1311768473763075703 0x0000000112345678, 4600387192 + 0x7fffffff00000000, 9223372032559808512 = 0x8000000012345678, -9223372036549355912 0x0000000112345678, 4600387192 + 0x7fffffff00000001, 9223372032559808513 = 0x8000000012345679, -9223372036549355911 0x0000000112345678, 4600387192 + 0x7fffffff00012345, 9223372032559883077 = 0x80000000123579bd, -9223372036549281347 0x0000000112345678, 4600387192 + 0x7fffffff12345678, 9223372032865228408 = 0x800000002468acf0, -9223372036243936016 0x0000000112345678, 4600387192 + 0x7fffffff7fffffff, 9223372034707292159 = 0x8000000092345677, -9223372034401872265 0x0000000112345678, 4600387192 + 0x7fffffffffffffff, 9223372036854775807 = 0x8000000112345677, -9223372032254388617 0x0000000112345678, 4600387192 + 0xffffffff00000000, -4294967296 = 0x0000000012345678, 305419896 0x0000000112345678, 4600387192 + 0xffffffff00000001, -4294967295 = 0x0000000012345679, 305419897 0x0000000112345678, 4600387192 + 0xffffffff00012345, -4294892731 = 0x00000000123579bd, 305494461 0x0000000112345678, 4600387192 + 0xffffffff12345678, -3989547400 = 0x000000002468acf0, 610839792 0x0000000112345678, 4600387192 + 0xffffffff7fffffff, -2147483649 = 0x0000000092345677, 2452903543 0x0000000112345678, 4600387192 + 0xffffffffffffffff, -1 = 0x0000000112345677, 4600387191 0x000000017fffffff, 6442450943 + 0x0000000000000000, 0 = 0x000000017fffffff, 6442450943 0x000000017fffffff, 6442450943 + 0x0000000000000001, 1 = 0x0000000180000000, 6442450944 0x000000017fffffff, 6442450943 + 0x0000000000012345, 74565 = 0x0000000180012344, 6442525508 0x000000017fffffff, 6442450943 + 0x0000000012345678, 305419896 = 0x0000000192345677, 6747870839 0x000000017fffffff, 6442450943 + 0x000000007fffffff, 2147483647 = 0x00000001fffffffe, 8589934590 0x000000017fffffff, 6442450943 + 0x00000000ffffffff, 4294967295 = 0x000000027ffffffe, 10737418238 0x000000017fffffff, 6442450943 + 0x0000000100000000, 4294967296 = 0x000000027fffffff, 10737418239 0x000000017fffffff, 6442450943 + 0x0000000100000001, 4294967297 = 0x0000000280000000, 10737418240 0x000000017fffffff, 6442450943 + 0x0000000100012345, 4295041861 = 0x0000000280012344, 10737492804 0x000000017fffffff, 6442450943 + 0x0000000112345678, 4600387192 = 0x0000000292345677, 11042838135 0x000000017fffffff, 6442450943 + 0x000000017fffffff, 6442450943 = 0x00000002fffffffe, 12884901886 0x000000017fffffff, 6442450943 + 0x00000001ffffffff, 8589934591 = 0x000000037ffffffe, 15032385534 0x000000017fffffff, 6442450943 + 0x0001234500000000, 320254236426240 = 0x000123467fffffff, 320260678877183 0x000000017fffffff, 6442450943 + 0x0001234500000001, 320254236426241 = 0x0001234680000000, 320260678877184 0x000000017fffffff, 6442450943 + 0x0001234500012345, 320254236500805 = 0x0001234680012344, 320260678951748 0x000000017fffffff, 6442450943 + 0x0001234512345678, 320254541846136 = 0x0001234692345677, 320260984297079 0x000000017fffffff, 6442450943 + 0x000123457fffffff, 320256383909887 = 0x00012346fffffffe, 320262826360830 0x000000017fffffff, 6442450943 + 0x00012345ffffffff, 320258531393535 = 0x000123477ffffffe, 320264973844478 0x000000017fffffff, 6442450943 + 0x1234567800000000, 1311768464867721216 = 0x123456797fffffff, 1311768471310172159 0x000000017fffffff, 6442450943 + 0x1234567800000001, 1311768464867721217 = 0x1234567980000000, 1311768471310172160 0x000000017fffffff, 6442450943 + 0x1234567800012345, 1311768464867795781 = 0x1234567980012344, 1311768471310246724 0x000000017fffffff, 6442450943 + 0x1234567812345678, 1311768465173141112 = 0x1234567992345677, 1311768471615592055 0x000000017fffffff, 6442450943 + 0x123456787fffffff, 1311768467015204863 = 0x12345679fffffffe, 1311768473457655806 0x000000017fffffff, 6442450943 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567a7ffffffe, 1311768475605139454 0x000000017fffffff, 6442450943 + 0x7fffffff00000000, 9223372032559808512 = 0x800000007fffffff, -9223372034707292161 0x000000017fffffff, 6442450943 + 0x7fffffff00000001, 9223372032559808513 = 0x8000000080000000, -9223372034707292160 0x000000017fffffff, 6442450943 + 0x7fffffff00012345, 9223372032559883077 = 0x8000000080012344, -9223372034707217596 0x000000017fffffff, 6442450943 + 0x7fffffff12345678, 9223372032865228408 = 0x8000000092345677, -9223372034401872265 0x000000017fffffff, 6442450943 + 0x7fffffff7fffffff, 9223372034707292159 = 0x80000000fffffffe, -9223372032559808514 0x000000017fffffff, 6442450943 + 0x7fffffffffffffff, 9223372036854775807 = 0x800000017ffffffe, -9223372030412324866 0x000000017fffffff, 6442450943 + 0xffffffff00000000, -4294967296 = 0x000000007fffffff, 2147483647 0x000000017fffffff, 6442450943 + 0xffffffff00000001, -4294967295 = 0x0000000080000000, 2147483648 0x000000017fffffff, 6442450943 + 0xffffffff00012345, -4294892731 = 0x0000000080012344, 2147558212 0x000000017fffffff, 6442450943 + 0xffffffff12345678, -3989547400 = 0x0000000092345677, 2452903543 0x000000017fffffff, 6442450943 + 0xffffffff7fffffff, -2147483649 = 0x00000000fffffffe, 4294967294 0x000000017fffffff, 6442450943 + 0xffffffffffffffff, -1 = 0x000000017ffffffe, 6442450942 0x00000001ffffffff, 8589934591 + 0x0000000000000000, 0 = 0x00000001ffffffff, 8589934591 0x00000001ffffffff, 8589934591 + 0x0000000000000001, 1 = 0x0000000200000000, 8589934592 0x00000001ffffffff, 8589934591 + 0x0000000000012345, 74565 = 0x0000000200012344, 8590009156 0x00000001ffffffff, 8589934591 + 0x0000000012345678, 305419896 = 0x0000000212345677, 8895354487 0x00000001ffffffff, 8589934591 + 0x000000007fffffff, 2147483647 = 0x000000027ffffffe, 10737418238 0x00000001ffffffff, 8589934591 + 0x00000000ffffffff, 4294967295 = 0x00000002fffffffe, 12884901886 0x00000001ffffffff, 8589934591 + 0x0000000100000000, 4294967296 = 0x00000002ffffffff, 12884901887 0x00000001ffffffff, 8589934591 + 0x0000000100000001, 4294967297 = 0x0000000300000000, 12884901888 0x00000001ffffffff, 8589934591 + 0x0000000100012345, 4295041861 = 0x0000000300012344, 12884976452 0x00000001ffffffff, 8589934591 + 0x0000000112345678, 4600387192 = 0x0000000312345677, 13190321783 0x00000001ffffffff, 8589934591 + 0x000000017fffffff, 6442450943 = 0x000000037ffffffe, 15032385534 0x00000001ffffffff, 8589934591 + 0x00000001ffffffff, 8589934591 = 0x00000003fffffffe, 17179869182 0x00000001ffffffff, 8589934591 + 0x0001234500000000, 320254236426240 = 0x00012346ffffffff, 320262826360831 0x00000001ffffffff, 8589934591 + 0x0001234500000001, 320254236426241 = 0x0001234700000000, 320262826360832 0x00000001ffffffff, 8589934591 + 0x0001234500012345, 320254236500805 = 0x0001234700012344, 320262826435396 0x00000001ffffffff, 8589934591 + 0x0001234512345678, 320254541846136 = 0x0001234712345677, 320263131780727 0x00000001ffffffff, 8589934591 + 0x000123457fffffff, 320256383909887 = 0x000123477ffffffe, 320264973844478 0x00000001ffffffff, 8589934591 + 0x00012345ffffffff, 320258531393535 = 0x00012347fffffffe, 320267121328126 0x00000001ffffffff, 8589934591 + 0x1234567800000000, 1311768464867721216 = 0x12345679ffffffff, 1311768473457655807 0x00000001ffffffff, 8589934591 + 0x1234567800000001, 1311768464867721217 = 0x1234567a00000000, 1311768473457655808 0x00000001ffffffff, 8589934591 + 0x1234567800012345, 1311768464867795781 = 0x1234567a00012344, 1311768473457730372 0x00000001ffffffff, 8589934591 + 0x1234567812345678, 1311768465173141112 = 0x1234567a12345677, 1311768473763075703 0x00000001ffffffff, 8589934591 + 0x123456787fffffff, 1311768467015204863 = 0x1234567a7ffffffe, 1311768475605139454 0x00000001ffffffff, 8589934591 + 0x12345678ffffffff, 1311768469162688511 = 0x1234567afffffffe, 1311768477752623102 0x00000001ffffffff, 8589934591 + 0x7fffffff00000000, 9223372032559808512 = 0x80000000ffffffff, -9223372032559808513 0x00000001ffffffff, 8589934591 + 0x7fffffff00000001, 9223372032559808513 = 0x8000000100000000, -9223372032559808512 0x00000001ffffffff, 8589934591 + 0x7fffffff00012345, 9223372032559883077 = 0x8000000100012344, -9223372032559733948 0x00000001ffffffff, 8589934591 + 0x7fffffff12345678, 9223372032865228408 = 0x8000000112345677, -9223372032254388617 0x00000001ffffffff, 8589934591 + 0x7fffffff7fffffff, 9223372034707292159 = 0x800000017ffffffe, -9223372030412324866 0x00000001ffffffff, 8589934591 + 0x7fffffffffffffff, 9223372036854775807 = 0x80000001fffffffe, -9223372028264841218 0x00000001ffffffff, 8589934591 + 0xffffffff00000000, -4294967296 = 0x00000000ffffffff, 4294967295 0x00000001ffffffff, 8589934591 + 0xffffffff00000001, -4294967295 = 0x0000000100000000, 4294967296 0x00000001ffffffff, 8589934591 + 0xffffffff00012345, -4294892731 = 0x0000000100012344, 4295041860 0x00000001ffffffff, 8589934591 + 0xffffffff12345678, -3989547400 = 0x0000000112345677, 4600387191 0x00000001ffffffff, 8589934591 + 0xffffffff7fffffff, -2147483649 = 0x000000017ffffffe, 6442450942 0x00000001ffffffff, 8589934591 + 0xffffffffffffffff, -1 = 0x00000001fffffffe, 8589934590 0x0001234500000000, 320254236426240 + 0x0000000000000000, 0 = 0x0001234500000000, 320254236426240 0x0001234500000000, 320254236426240 + 0x0000000000000001, 1 = 0x0001234500000001, 320254236426241 0x0001234500000000, 320254236426240 + 0x0000000000012345, 74565 = 0x0001234500012345, 320254236500805 0x0001234500000000, 320254236426240 + 0x0000000012345678, 305419896 = 0x0001234512345678, 320254541846136 0x0001234500000000, 320254236426240 + 0x000000007fffffff, 2147483647 = 0x000123457fffffff, 320256383909887 0x0001234500000000, 320254236426240 + 0x00000000ffffffff, 4294967295 = 0x00012345ffffffff, 320258531393535 0x0001234500000000, 320254236426240 + 0x0000000100000000, 4294967296 = 0x0001234600000000, 320258531393536 0x0001234500000000, 320254236426240 + 0x0000000100000001, 4294967297 = 0x0001234600000001, 320258531393537 0x0001234500000000, 320254236426240 + 0x0000000100012345, 4295041861 = 0x0001234600012345, 320258531468101 0x0001234500000000, 320254236426240 + 0x0000000112345678, 4600387192 = 0x0001234612345678, 320258836813432 0x0001234500000000, 320254236426240 + 0x000000017fffffff, 6442450943 = 0x000123467fffffff, 320260678877183 0x0001234500000000, 320254236426240 + 0x00000001ffffffff, 8589934591 = 0x00012346ffffffff, 320262826360831 0x0001234500000000, 320254236426240 + 0x0001234500000000, 320254236426240 = 0x0002468a00000000, 640508472852480 0x0001234500000000, 320254236426240 + 0x0001234500000001, 320254236426241 = 0x0002468a00000001, 640508472852481 0x0001234500000000, 320254236426240 + 0x0001234500012345, 320254236500805 = 0x0002468a00012345, 640508472927045 0x0001234500000000, 320254236426240 + 0x0001234512345678, 320254541846136 = 0x0002468a12345678, 640508778272376 0x0001234500000000, 320254236426240 + 0x000123457fffffff, 320256383909887 = 0x0002468a7fffffff, 640510620336127 0x0001234500000000, 320254236426240 + 0x00012345ffffffff, 320258531393535 = 0x0002468affffffff, 640512767819775 0x0001234500000000, 320254236426240 + 0x1234567800000000, 1311768464867721216 = 0x123579bd00000000, 1312088719104147456 0x0001234500000000, 320254236426240 + 0x1234567800000001, 1311768464867721217 = 0x123579bd00000001, 1312088719104147457 0x0001234500000000, 320254236426240 + 0x1234567800012345, 1311768464867795781 = 0x123579bd00012345, 1312088719104222021 0x0001234500000000, 320254236426240 + 0x1234567812345678, 1311768465173141112 = 0x123579bd12345678, 1312088719409567352 0x0001234500000000, 320254236426240 + 0x123456787fffffff, 1311768467015204863 = 0x123579bd7fffffff, 1312088721251631103 0x0001234500000000, 320254236426240 + 0x12345678ffffffff, 1311768469162688511 = 0x123579bdffffffff, 1312088723399114751 0x0001234500000000, 320254236426240 + 0x7fffffff00000000, 9223372032559808512 = 0x8001234400000000, -9223051786913316864 0x0001234500000000, 320254236426240 + 0x7fffffff00000001, 9223372032559808513 = 0x8001234400000001, -9223051786913316863 0x0001234500000000, 320254236426240 + 0x7fffffff00012345, 9223372032559883077 = 0x8001234400012345, -9223051786913242299 0x0001234500000000, 320254236426240 + 0x7fffffff12345678, 9223372032865228408 = 0x8001234412345678, -9223051786607896968 0x0001234500000000, 320254236426240 + 0x7fffffff7fffffff, 9223372034707292159 = 0x800123447fffffff, -9223051784765833217 0x0001234500000000, 320254236426240 + 0x7fffffffffffffff, 9223372036854775807 = 0x80012344ffffffff, -9223051782618349569 0x0001234500000000, 320254236426240 + 0xffffffff00000000, -4294967296 = 0x0001234400000000, 320249941458944 0x0001234500000000, 320254236426240 + 0xffffffff00000001, -4294967295 = 0x0001234400000001, 320249941458945 0x0001234500000000, 320254236426240 + 0xffffffff00012345, -4294892731 = 0x0001234400012345, 320249941533509 0x0001234500000000, 320254236426240 + 0xffffffff12345678, -3989547400 = 0x0001234412345678, 320250246878840 0x0001234500000000, 320254236426240 + 0xffffffff7fffffff, -2147483649 = 0x000123447fffffff, 320252088942591 0x0001234500000000, 320254236426240 + 0xffffffffffffffff, -1 = 0x00012344ffffffff, 320254236426239 0x0001234500000001, 320254236426241 + 0x0000000000000000, 0 = 0x0001234500000001, 320254236426241 0x0001234500000001, 320254236426241 + 0x0000000000000001, 1 = 0x0001234500000002, 320254236426242 0x0001234500000001, 320254236426241 + 0x0000000000012345, 74565 = 0x0001234500012346, 320254236500806 0x0001234500000001, 320254236426241 + 0x0000000012345678, 305419896 = 0x0001234512345679, 320254541846137 0x0001234500000001, 320254236426241 + 0x000000007fffffff, 2147483647 = 0x0001234580000000, 320256383909888 0x0001234500000001, 320254236426241 + 0x00000000ffffffff, 4294967295 = 0x0001234600000000, 320258531393536 0x0001234500000001, 320254236426241 + 0x0000000100000000, 4294967296 = 0x0001234600000001, 320258531393537 0x0001234500000001, 320254236426241 + 0x0000000100000001, 4294967297 = 0x0001234600000002, 320258531393538 0x0001234500000001, 320254236426241 + 0x0000000100012345, 4295041861 = 0x0001234600012346, 320258531468102 0x0001234500000001, 320254236426241 + 0x0000000112345678, 4600387192 = 0x0001234612345679, 320258836813433 0x0001234500000001, 320254236426241 + 0x000000017fffffff, 6442450943 = 0x0001234680000000, 320260678877184 0x0001234500000001, 320254236426241 + 0x00000001ffffffff, 8589934591 = 0x0001234700000000, 320262826360832 0x0001234500000001, 320254236426241 + 0x0001234500000000, 320254236426240 = 0x0002468a00000001, 640508472852481 0x0001234500000001, 320254236426241 + 0x0001234500000001, 320254236426241 = 0x0002468a00000002, 640508472852482 0x0001234500000001, 320254236426241 + 0x0001234500012345, 320254236500805 = 0x0002468a00012346, 640508472927046 0x0001234500000001, 320254236426241 + 0x0001234512345678, 320254541846136 = 0x0002468a12345679, 640508778272377 0x0001234500000001, 320254236426241 + 0x000123457fffffff, 320256383909887 = 0x0002468a80000000, 640510620336128 0x0001234500000001, 320254236426241 + 0x00012345ffffffff, 320258531393535 = 0x0002468b00000000, 640512767819776 0x0001234500000001, 320254236426241 + 0x1234567800000000, 1311768464867721216 = 0x123579bd00000001, 1312088719104147457 0x0001234500000001, 320254236426241 + 0x1234567800000001, 1311768464867721217 = 0x123579bd00000002, 1312088719104147458 0x0001234500000001, 320254236426241 + 0x1234567800012345, 1311768464867795781 = 0x123579bd00012346, 1312088719104222022 0x0001234500000001, 320254236426241 + 0x1234567812345678, 1311768465173141112 = 0x123579bd12345679, 1312088719409567353 0x0001234500000001, 320254236426241 + 0x123456787fffffff, 1311768467015204863 = 0x123579bd80000000, 1312088721251631104 0x0001234500000001, 320254236426241 + 0x12345678ffffffff, 1311768469162688511 = 0x123579be00000000, 1312088723399114752 0x0001234500000001, 320254236426241 + 0x7fffffff00000000, 9223372032559808512 = 0x8001234400000001, -9223051786913316863 0x0001234500000001, 320254236426241 + 0x7fffffff00000001, 9223372032559808513 = 0x8001234400000002, -9223051786913316862 0x0001234500000001, 320254236426241 + 0x7fffffff00012345, 9223372032559883077 = 0x8001234400012346, -9223051786913242298 0x0001234500000001, 320254236426241 + 0x7fffffff12345678, 9223372032865228408 = 0x8001234412345679, -9223051786607896967 0x0001234500000001, 320254236426241 + 0x7fffffff7fffffff, 9223372034707292159 = 0x8001234480000000, -9223051784765833216 0x0001234500000001, 320254236426241 + 0x7fffffffffffffff, 9223372036854775807 = 0x8001234500000000, -9223051782618349568 0x0001234500000001, 320254236426241 + 0xffffffff00000000, -4294967296 = 0x0001234400000001, 320249941458945 0x0001234500000001, 320254236426241 + 0xffffffff00000001, -4294967295 = 0x0001234400000002, 320249941458946 0x0001234500000001, 320254236426241 + 0xffffffff00012345, -4294892731 = 0x0001234400012346, 320249941533510 0x0001234500000001, 320254236426241 + 0xffffffff12345678, -3989547400 = 0x0001234412345679, 320250246878841 0x0001234500000001, 320254236426241 + 0xffffffff7fffffff, -2147483649 = 0x0001234480000000, 320252088942592 0x0001234500000001, 320254236426241 + 0xffffffffffffffff, -1 = 0x0001234500000000, 320254236426240 0x0001234500012345, 320254236500805 + 0x0000000000000000, 0 = 0x0001234500012345, 320254236500805 0x0001234500012345, 320254236500805 + 0x0000000000000001, 1 = 0x0001234500012346, 320254236500806 0x0001234500012345, 320254236500805 + 0x0000000000012345, 74565 = 0x000123450002468a, 320254236575370 0x0001234500012345, 320254236500805 + 0x0000000012345678, 305419896 = 0x00012345123579bd, 320254541920701 0x0001234500012345, 320254236500805 + 0x000000007fffffff, 2147483647 = 0x0001234580012344, 320256383984452 0x0001234500012345, 320254236500805 + 0x00000000ffffffff, 4294967295 = 0x0001234600012344, 320258531468100 0x0001234500012345, 320254236500805 + 0x0000000100000000, 4294967296 = 0x0001234600012345, 320258531468101 0x0001234500012345, 320254236500805 + 0x0000000100000001, 4294967297 = 0x0001234600012346, 320258531468102 0x0001234500012345, 320254236500805 + 0x0000000100012345, 4295041861 = 0x000123460002468a, 320258531542666 0x0001234500012345, 320254236500805 + 0x0000000112345678, 4600387192 = 0x00012346123579bd, 320258836887997 0x0001234500012345, 320254236500805 + 0x000000017fffffff, 6442450943 = 0x0001234680012344, 320260678951748 0x0001234500012345, 320254236500805 + 0x00000001ffffffff, 8589934591 = 0x0001234700012344, 320262826435396 0x0001234500012345, 320254236500805 + 0x0001234500000000, 320254236426240 = 0x0002468a00012345, 640508472927045 0x0001234500012345, 320254236500805 + 0x0001234500000001, 320254236426241 = 0x0002468a00012346, 640508472927046 0x0001234500012345, 320254236500805 + 0x0001234500012345, 320254236500805 = 0x0002468a0002468a, 640508473001610 0x0001234500012345, 320254236500805 + 0x0001234512345678, 320254541846136 = 0x0002468a123579bd, 640508778346941 0x0001234500012345, 320254236500805 + 0x000123457fffffff, 320256383909887 = 0x0002468a80012344, 640510620410692 0x0001234500012345, 320254236500805 + 0x00012345ffffffff, 320258531393535 = 0x0002468b00012344, 640512767894340 0x0001234500012345, 320254236500805 + 0x1234567800000000, 1311768464867721216 = 0x123579bd00012345, 1312088719104222021 0x0001234500012345, 320254236500805 + 0x1234567800000001, 1311768464867721217 = 0x123579bd00012346, 1312088719104222022 0x0001234500012345, 320254236500805 + 0x1234567800012345, 1311768464867795781 = 0x123579bd0002468a, 1312088719104296586 0x0001234500012345, 320254236500805 + 0x1234567812345678, 1311768465173141112 = 0x123579bd123579bd, 1312088719409641917 0x0001234500012345, 320254236500805 + 0x123456787fffffff, 1311768467015204863 = 0x123579bd80012344, 1312088721251705668 0x0001234500012345, 320254236500805 + 0x12345678ffffffff, 1311768469162688511 = 0x123579be00012344, 1312088723399189316 0x0001234500012345, 320254236500805 + 0x7fffffff00000000, 9223372032559808512 = 0x8001234400012345, -9223051786913242299 0x0001234500012345, 320254236500805 + 0x7fffffff00000001, 9223372032559808513 = 0x8001234400012346, -9223051786913242298 0x0001234500012345, 320254236500805 + 0x7fffffff00012345, 9223372032559883077 = 0x800123440002468a, -9223051786913167734 0x0001234500012345, 320254236500805 + 0x7fffffff12345678, 9223372032865228408 = 0x80012344123579bd, -9223051786607822403 0x0001234500012345, 320254236500805 + 0x7fffffff7fffffff, 9223372034707292159 = 0x8001234480012344, -9223051784765758652 0x0001234500012345, 320254236500805 + 0x7fffffffffffffff, 9223372036854775807 = 0x8001234500012344, -9223051782618275004 0x0001234500012345, 320254236500805 + 0xffffffff00000000, -4294967296 = 0x0001234400012345, 320249941533509 0x0001234500012345, 320254236500805 + 0xffffffff00000001, -4294967295 = 0x0001234400012346, 320249941533510 0x0001234500012345, 320254236500805 + 0xffffffff00012345, -4294892731 = 0x000123440002468a, 320249941608074 0x0001234500012345, 320254236500805 + 0xffffffff12345678, -3989547400 = 0x00012344123579bd, 320250246953405 0x0001234500012345, 320254236500805 + 0xffffffff7fffffff, -2147483649 = 0x0001234480012344, 320252089017156 0x0001234500012345, 320254236500805 + 0xffffffffffffffff, -1 = 0x0001234500012344, 320254236500804 0x0001234512345678, 320254541846136 + 0x0000000000000000, 0 = 0x0001234512345678, 320254541846136 0x0001234512345678, 320254541846136 + 0x0000000000000001, 1 = 0x0001234512345679, 320254541846137 0x0001234512345678, 320254541846136 + 0x0000000000012345, 74565 = 0x00012345123579bd, 320254541920701 0x0001234512345678, 320254541846136 + 0x0000000012345678, 305419896 = 0x000123452468acf0, 320254847266032 0x0001234512345678, 320254541846136 + 0x000000007fffffff, 2147483647 = 0x0001234592345677, 320256689329783 0x0001234512345678, 320254541846136 + 0x00000000ffffffff, 4294967295 = 0x0001234612345677, 320258836813431 0x0001234512345678, 320254541846136 + 0x0000000100000000, 4294967296 = 0x0001234612345678, 320258836813432 0x0001234512345678, 320254541846136 + 0x0000000100000001, 4294967297 = 0x0001234612345679, 320258836813433 0x0001234512345678, 320254541846136 + 0x0000000100012345, 4295041861 = 0x00012346123579bd, 320258836887997 0x0001234512345678, 320254541846136 + 0x0000000112345678, 4600387192 = 0x000123462468acf0, 320259142233328 0x0001234512345678, 320254541846136 + 0x000000017fffffff, 6442450943 = 0x0001234692345677, 320260984297079 0x0001234512345678, 320254541846136 + 0x00000001ffffffff, 8589934591 = 0x0001234712345677, 320263131780727 0x0001234512345678, 320254541846136 + 0x0001234500000000, 320254236426240 = 0x0002468a12345678, 640508778272376 0x0001234512345678, 320254541846136 + 0x0001234500000001, 320254236426241 = 0x0002468a12345679, 640508778272377 0x0001234512345678, 320254541846136 + 0x0001234500012345, 320254236500805 = 0x0002468a123579bd, 640508778346941 0x0001234512345678, 320254541846136 + 0x0001234512345678, 320254541846136 = 0x0002468a2468acf0, 640509083692272 0x0001234512345678, 320254541846136 + 0x000123457fffffff, 320256383909887 = 0x0002468a92345677, 640510925756023 0x0001234512345678, 320254541846136 + 0x00012345ffffffff, 320258531393535 = 0x0002468b12345677, 640513073239671 0x0001234512345678, 320254541846136 + 0x1234567800000000, 1311768464867721216 = 0x123579bd12345678, 1312088719409567352 0x0001234512345678, 320254541846136 + 0x1234567800000001, 1311768464867721217 = 0x123579bd12345679, 1312088719409567353 0x0001234512345678, 320254541846136 + 0x1234567800012345, 1311768464867795781 = 0x123579bd123579bd, 1312088719409641917 0x0001234512345678, 320254541846136 + 0x1234567812345678, 1311768465173141112 = 0x123579bd2468acf0, 1312088719714987248 0x0001234512345678, 320254541846136 + 0x123456787fffffff, 1311768467015204863 = 0x123579bd92345677, 1312088721557050999 0x0001234512345678, 320254541846136 + 0x12345678ffffffff, 1311768469162688511 = 0x123579be12345677, 1312088723704534647 0x0001234512345678, 320254541846136 + 0x7fffffff00000000, 9223372032559808512 = 0x8001234412345678, -9223051786607896968 0x0001234512345678, 320254541846136 + 0x7fffffff00000001, 9223372032559808513 = 0x8001234412345679, -9223051786607896967 0x0001234512345678, 320254541846136 + 0x7fffffff00012345, 9223372032559883077 = 0x80012344123579bd, -9223051786607822403 0x0001234512345678, 320254541846136 + 0x7fffffff12345678, 9223372032865228408 = 0x800123442468acf0, -9223051786302477072 0x0001234512345678, 320254541846136 + 0x7fffffff7fffffff, 9223372034707292159 = 0x8001234492345677, -9223051784460413321 0x0001234512345678, 320254541846136 + 0x7fffffffffffffff, 9223372036854775807 = 0x8001234512345677, -9223051782312929673 0x0001234512345678, 320254541846136 + 0xffffffff00000000, -4294967296 = 0x0001234412345678, 320250246878840 0x0001234512345678, 320254541846136 + 0xffffffff00000001, -4294967295 = 0x0001234412345679, 320250246878841 0x0001234512345678, 320254541846136 + 0xffffffff00012345, -4294892731 = 0x00012344123579bd, 320250246953405 0x0001234512345678, 320254541846136 + 0xffffffff12345678, -3989547400 = 0x000123442468acf0, 320250552298736 0x0001234512345678, 320254541846136 + 0xffffffff7fffffff, -2147483649 = 0x0001234492345677, 320252394362487 0x0001234512345678, 320254541846136 + 0xffffffffffffffff, -1 = 0x0001234512345677, 320254541846135 0x000123457fffffff, 320256383909887 + 0x0000000000000000, 0 = 0x000123457fffffff, 320256383909887 0x000123457fffffff, 320256383909887 + 0x0000000000000001, 1 = 0x0001234580000000, 320256383909888 0x000123457fffffff, 320256383909887 + 0x0000000000012345, 74565 = 0x0001234580012344, 320256383984452 0x000123457fffffff, 320256383909887 + 0x0000000012345678, 305419896 = 0x0001234592345677, 320256689329783 0x000123457fffffff, 320256383909887 + 0x000000007fffffff, 2147483647 = 0x00012345fffffffe, 320258531393534 0x000123457fffffff, 320256383909887 + 0x00000000ffffffff, 4294967295 = 0x000123467ffffffe, 320260678877182 0x000123457fffffff, 320256383909887 + 0x0000000100000000, 4294967296 = 0x000123467fffffff, 320260678877183 0x000123457fffffff, 320256383909887 + 0x0000000100000001, 4294967297 = 0x0001234680000000, 320260678877184 0x000123457fffffff, 320256383909887 + 0x0000000100012345, 4295041861 = 0x0001234680012344, 320260678951748 0x000123457fffffff, 320256383909887 + 0x0000000112345678, 4600387192 = 0x0001234692345677, 320260984297079 0x000123457fffffff, 320256383909887 + 0x000000017fffffff, 6442450943 = 0x00012346fffffffe, 320262826360830 0x000123457fffffff, 320256383909887 + 0x00000001ffffffff, 8589934591 = 0x000123477ffffffe, 320264973844478 0x000123457fffffff, 320256383909887 + 0x0001234500000000, 320254236426240 = 0x0002468a7fffffff, 640510620336127 0x000123457fffffff, 320256383909887 + 0x0001234500000001, 320254236426241 = 0x0002468a80000000, 640510620336128 0x000123457fffffff, 320256383909887 + 0x0001234500012345, 320254236500805 = 0x0002468a80012344, 640510620410692 0x000123457fffffff, 320256383909887 + 0x0001234512345678, 320254541846136 = 0x0002468a92345677, 640510925756023 0x000123457fffffff, 320256383909887 + 0x000123457fffffff, 320256383909887 = 0x0002468afffffffe, 640512767819774 0x000123457fffffff, 320256383909887 + 0x00012345ffffffff, 320258531393535 = 0x0002468b7ffffffe, 640514915303422 0x000123457fffffff, 320256383909887 + 0x1234567800000000, 1311768464867721216 = 0x123579bd7fffffff, 1312088721251631103 0x000123457fffffff, 320256383909887 + 0x1234567800000001, 1311768464867721217 = 0x123579bd80000000, 1312088721251631104 0x000123457fffffff, 320256383909887 + 0x1234567800012345, 1311768464867795781 = 0x123579bd80012344, 1312088721251705668 0x000123457fffffff, 320256383909887 + 0x1234567812345678, 1311768465173141112 = 0x123579bd92345677, 1312088721557050999 0x000123457fffffff, 320256383909887 + 0x123456787fffffff, 1311768467015204863 = 0x123579bdfffffffe, 1312088723399114750 0x000123457fffffff, 320256383909887 + 0x12345678ffffffff, 1311768469162688511 = 0x123579be7ffffffe, 1312088725546598398 0x000123457fffffff, 320256383909887 + 0x7fffffff00000000, 9223372032559808512 = 0x800123447fffffff, -9223051784765833217 0x000123457fffffff, 320256383909887 + 0x7fffffff00000001, 9223372032559808513 = 0x8001234480000000, -9223051784765833216 0x000123457fffffff, 320256383909887 + 0x7fffffff00012345, 9223372032559883077 = 0x8001234480012344, -9223051784765758652 0x000123457fffffff, 320256383909887 + 0x7fffffff12345678, 9223372032865228408 = 0x8001234492345677, -9223051784460413321 0x000123457fffffff, 320256383909887 + 0x7fffffff7fffffff, 9223372034707292159 = 0x80012344fffffffe, -9223051782618349570 0x000123457fffffff, 320256383909887 + 0x7fffffffffffffff, 9223372036854775807 = 0x800123457ffffffe, -9223051780470865922 0x000123457fffffff, 320256383909887 + 0xffffffff00000000, -4294967296 = 0x000123447fffffff, 320252088942591 0x000123457fffffff, 320256383909887 + 0xffffffff00000001, -4294967295 = 0x0001234480000000, 320252088942592 0x000123457fffffff, 320256383909887 + 0xffffffff00012345, -4294892731 = 0x0001234480012344, 320252089017156 0x000123457fffffff, 320256383909887 + 0xffffffff12345678, -3989547400 = 0x0001234492345677, 320252394362487 0x000123457fffffff, 320256383909887 + 0xffffffff7fffffff, -2147483649 = 0x00012344fffffffe, 320254236426238 0x000123457fffffff, 320256383909887 + 0xffffffffffffffff, -1 = 0x000123457ffffffe, 320256383909886 0x00012345ffffffff, 320258531393535 + 0x0000000000000000, 0 = 0x00012345ffffffff, 320258531393535 0x00012345ffffffff, 320258531393535 + 0x0000000000000001, 1 = 0x0001234600000000, 320258531393536 0x00012345ffffffff, 320258531393535 + 0x0000000000012345, 74565 = 0x0001234600012344, 320258531468100 0x00012345ffffffff, 320258531393535 + 0x0000000012345678, 305419896 = 0x0001234612345677, 320258836813431 0x00012345ffffffff, 320258531393535 + 0x000000007fffffff, 2147483647 = 0x000123467ffffffe, 320260678877182 0x00012345ffffffff, 320258531393535 + 0x00000000ffffffff, 4294967295 = 0x00012346fffffffe, 320262826360830 0x00012345ffffffff, 320258531393535 + 0x0000000100000000, 4294967296 = 0x00012346ffffffff, 320262826360831 0x00012345ffffffff, 320258531393535 + 0x0000000100000001, 4294967297 = 0x0001234700000000, 320262826360832 0x00012345ffffffff, 320258531393535 + 0x0000000100012345, 4295041861 = 0x0001234700012344, 320262826435396 0x00012345ffffffff, 320258531393535 + 0x0000000112345678, 4600387192 = 0x0001234712345677, 320263131780727 0x00012345ffffffff, 320258531393535 + 0x000000017fffffff, 6442450943 = 0x000123477ffffffe, 320264973844478 0x00012345ffffffff, 320258531393535 + 0x00000001ffffffff, 8589934591 = 0x00012347fffffffe, 320267121328126 0x00012345ffffffff, 320258531393535 + 0x0001234500000000, 320254236426240 = 0x0002468affffffff, 640512767819775 0x00012345ffffffff, 320258531393535 + 0x0001234500000001, 320254236426241 = 0x0002468b00000000, 640512767819776 0x00012345ffffffff, 320258531393535 + 0x0001234500012345, 320254236500805 = 0x0002468b00012344, 640512767894340 0x00012345ffffffff, 320258531393535 + 0x0001234512345678, 320254541846136 = 0x0002468b12345677, 640513073239671 0x00012345ffffffff, 320258531393535 + 0x000123457fffffff, 320256383909887 = 0x0002468b7ffffffe, 640514915303422 0x00012345ffffffff, 320258531393535 + 0x00012345ffffffff, 320258531393535 = 0x0002468bfffffffe, 640517062787070 0x00012345ffffffff, 320258531393535 + 0x1234567800000000, 1311768464867721216 = 0x123579bdffffffff, 1312088723399114751 0x00012345ffffffff, 320258531393535 + 0x1234567800000001, 1311768464867721217 = 0x123579be00000000, 1312088723399114752 0x00012345ffffffff, 320258531393535 + 0x1234567800012345, 1311768464867795781 = 0x123579be00012344, 1312088723399189316 0x00012345ffffffff, 320258531393535 + 0x1234567812345678, 1311768465173141112 = 0x123579be12345677, 1312088723704534647 0x00012345ffffffff, 320258531393535 + 0x123456787fffffff, 1311768467015204863 = 0x123579be7ffffffe, 1312088725546598398 0x00012345ffffffff, 320258531393535 + 0x12345678ffffffff, 1311768469162688511 = 0x123579befffffffe, 1312088727694082046 0x00012345ffffffff, 320258531393535 + 0x7fffffff00000000, 9223372032559808512 = 0x80012344ffffffff, -9223051782618349569 0x00012345ffffffff, 320258531393535 + 0x7fffffff00000001, 9223372032559808513 = 0x8001234500000000, -9223051782618349568 0x00012345ffffffff, 320258531393535 + 0x7fffffff00012345, 9223372032559883077 = 0x8001234500012344, -9223051782618275004 0x00012345ffffffff, 320258531393535 + 0x7fffffff12345678, 9223372032865228408 = 0x8001234512345677, -9223051782312929673 0x00012345ffffffff, 320258531393535 + 0x7fffffff7fffffff, 9223372034707292159 = 0x800123457ffffffe, -9223051780470865922 0x00012345ffffffff, 320258531393535 + 0x7fffffffffffffff, 9223372036854775807 = 0x80012345fffffffe, -9223051778323382274 0x00012345ffffffff, 320258531393535 + 0xffffffff00000000, -4294967296 = 0x00012344ffffffff, 320254236426239 0x00012345ffffffff, 320258531393535 + 0xffffffff00000001, -4294967295 = 0x0001234500000000, 320254236426240 0x00012345ffffffff, 320258531393535 + 0xffffffff00012345, -4294892731 = 0x0001234500012344, 320254236500804 0x00012345ffffffff, 320258531393535 + 0xffffffff12345678, -3989547400 = 0x0001234512345677, 320254541846135 0x00012345ffffffff, 320258531393535 + 0xffffffff7fffffff, -2147483649 = 0x000123457ffffffe, 320256383909886 0x00012345ffffffff, 320258531393535 + 0xffffffffffffffff, -1 = 0x00012345fffffffe, 320258531393534 0x1234567800000000, 1311768464867721216 + 0x0000000000000000, 0 = 0x1234567800000000, 1311768464867721216 0x1234567800000000, 1311768464867721216 + 0x0000000000000001, 1 = 0x1234567800000001, 1311768464867721217 0x1234567800000000, 1311768464867721216 + 0x0000000000012345, 74565 = 0x1234567800012345, 1311768464867795781 0x1234567800000000, 1311768464867721216 + 0x0000000012345678, 305419896 = 0x1234567812345678, 1311768465173141112 0x1234567800000000, 1311768464867721216 + 0x000000007fffffff, 2147483647 = 0x123456787fffffff, 1311768467015204863 0x1234567800000000, 1311768464867721216 + 0x00000000ffffffff, 4294967295 = 0x12345678ffffffff, 1311768469162688511 0x1234567800000000, 1311768464867721216 + 0x0000000100000000, 4294967296 = 0x1234567900000000, 1311768469162688512 0x1234567800000000, 1311768464867721216 + 0x0000000100000001, 4294967297 = 0x1234567900000001, 1311768469162688513 0x1234567800000000, 1311768464867721216 + 0x0000000100012345, 4295041861 = 0x1234567900012345, 1311768469162763077 0x1234567800000000, 1311768464867721216 + 0x0000000112345678, 4600387192 = 0x1234567912345678, 1311768469468108408 0x1234567800000000, 1311768464867721216 + 0x000000017fffffff, 6442450943 = 0x123456797fffffff, 1311768471310172159 0x1234567800000000, 1311768464867721216 + 0x00000001ffffffff, 8589934591 = 0x12345679ffffffff, 1311768473457655807 0x1234567800000000, 1311768464867721216 + 0x0001234500000000, 320254236426240 = 0x123579bd00000000, 1312088719104147456 0x1234567800000000, 1311768464867721216 + 0x0001234500000001, 320254236426241 = 0x123579bd00000001, 1312088719104147457 0x1234567800000000, 1311768464867721216 + 0x0001234500012345, 320254236500805 = 0x123579bd00012345, 1312088719104222021 0x1234567800000000, 1311768464867721216 + 0x0001234512345678, 320254541846136 = 0x123579bd12345678, 1312088719409567352 0x1234567800000000, 1311768464867721216 + 0x000123457fffffff, 320256383909887 = 0x123579bd7fffffff, 1312088721251631103 0x1234567800000000, 1311768464867721216 + 0x00012345ffffffff, 320258531393535 = 0x123579bdffffffff, 1312088723399114751 0x1234567800000000, 1311768464867721216 + 0x1234567800000000, 1311768464867721216 = 0x2468acf000000000, 2623536929735442432 0x1234567800000000, 1311768464867721216 + 0x1234567800000001, 1311768464867721217 = 0x2468acf000000001, 2623536929735442433 0x1234567800000000, 1311768464867721216 + 0x1234567800012345, 1311768464867795781 = 0x2468acf000012345, 2623536929735516997 0x1234567800000000, 1311768464867721216 + 0x1234567812345678, 1311768465173141112 = 0x2468acf012345678, 2623536930040862328 0x1234567800000000, 1311768464867721216 + 0x123456787fffffff, 1311768467015204863 = 0x2468acf07fffffff, 2623536931882926079 0x1234567800000000, 1311768464867721216 + 0x12345678ffffffff, 1311768469162688511 = 0x2468acf0ffffffff, 2623536934030409727 0x1234567800000000, 1311768464867721216 + 0x7fffffff00000000, 9223372032559808512 = 0x9234567700000000, -7911603576282021888 0x1234567800000000, 1311768464867721216 + 0x7fffffff00000001, 9223372032559808513 = 0x9234567700000001, -7911603576282021887 0x1234567800000000, 1311768464867721216 + 0x7fffffff00012345, 9223372032559883077 = 0x9234567700012345, -7911603576281947323 0x1234567800000000, 1311768464867721216 + 0x7fffffff12345678, 9223372032865228408 = 0x9234567712345678, -7911603575976601992 0x1234567800000000, 1311768464867721216 + 0x7fffffff7fffffff, 9223372034707292159 = 0x923456777fffffff, -7911603574134538241 0x1234567800000000, 1311768464867721216 + 0x7fffffffffffffff, 9223372036854775807 = 0x92345677ffffffff, -7911603571987054593 0x1234567800000000, 1311768464867721216 + 0xffffffff00000000, -4294967296 = 0x1234567700000000, 1311768460572753920 0x1234567800000000, 1311768464867721216 + 0xffffffff00000001, -4294967295 = 0x1234567700000001, 1311768460572753921 0x1234567800000000, 1311768464867721216 + 0xffffffff00012345, -4294892731 = 0x1234567700012345, 1311768460572828485 0x1234567800000000, 1311768464867721216 + 0xffffffff12345678, -3989547400 = 0x1234567712345678, 1311768460878173816 0x1234567800000000, 1311768464867721216 + 0xffffffff7fffffff, -2147483649 = 0x123456777fffffff, 1311768462720237567 0x1234567800000000, 1311768464867721216 + 0xffffffffffffffff, -1 = 0x12345677ffffffff, 1311768464867721215 0x1234567800000001, 1311768464867721217 + 0x0000000000000000, 0 = 0x1234567800000001, 1311768464867721217 0x1234567800000001, 1311768464867721217 + 0x0000000000000001, 1 = 0x1234567800000002, 1311768464867721218 0x1234567800000001, 1311768464867721217 + 0x0000000000012345, 74565 = 0x1234567800012346, 1311768464867795782 0x1234567800000001, 1311768464867721217 + 0x0000000012345678, 305419896 = 0x1234567812345679, 1311768465173141113 0x1234567800000001, 1311768464867721217 + 0x000000007fffffff, 2147483647 = 0x1234567880000000, 1311768467015204864 0x1234567800000001, 1311768464867721217 + 0x00000000ffffffff, 4294967295 = 0x1234567900000000, 1311768469162688512 0x1234567800000001, 1311768464867721217 + 0x0000000100000000, 4294967296 = 0x1234567900000001, 1311768469162688513 0x1234567800000001, 1311768464867721217 + 0x0000000100000001, 4294967297 = 0x1234567900000002, 1311768469162688514 0x1234567800000001, 1311768464867721217 + 0x0000000100012345, 4295041861 = 0x1234567900012346, 1311768469162763078 0x1234567800000001, 1311768464867721217 + 0x0000000112345678, 4600387192 = 0x1234567912345679, 1311768469468108409 0x1234567800000001, 1311768464867721217 + 0x000000017fffffff, 6442450943 = 0x1234567980000000, 1311768471310172160 0x1234567800000001, 1311768464867721217 + 0x00000001ffffffff, 8589934591 = 0x1234567a00000000, 1311768473457655808 0x1234567800000001, 1311768464867721217 + 0x0001234500000000, 320254236426240 = 0x123579bd00000001, 1312088719104147457 0x1234567800000001, 1311768464867721217 + 0x0001234500000001, 320254236426241 = 0x123579bd00000002, 1312088719104147458 0x1234567800000001, 1311768464867721217 + 0x0001234500012345, 320254236500805 = 0x123579bd00012346, 1312088719104222022 0x1234567800000001, 1311768464867721217 + 0x0001234512345678, 320254541846136 = 0x123579bd12345679, 1312088719409567353 0x1234567800000001, 1311768464867721217 + 0x000123457fffffff, 320256383909887 = 0x123579bd80000000, 1312088721251631104 0x1234567800000001, 1311768464867721217 + 0x00012345ffffffff, 320258531393535 = 0x123579be00000000, 1312088723399114752 0x1234567800000001, 1311768464867721217 + 0x1234567800000000, 1311768464867721216 = 0x2468acf000000001, 2623536929735442433 0x1234567800000001, 1311768464867721217 + 0x1234567800000001, 1311768464867721217 = 0x2468acf000000002, 2623536929735442434 0x1234567800000001, 1311768464867721217 + 0x1234567800012345, 1311768464867795781 = 0x2468acf000012346, 2623536929735516998 0x1234567800000001, 1311768464867721217 + 0x1234567812345678, 1311768465173141112 = 0x2468acf012345679, 2623536930040862329 0x1234567800000001, 1311768464867721217 + 0x123456787fffffff, 1311768467015204863 = 0x2468acf080000000, 2623536931882926080 0x1234567800000001, 1311768464867721217 + 0x12345678ffffffff, 1311768469162688511 = 0x2468acf100000000, 2623536934030409728 0x1234567800000001, 1311768464867721217 + 0x7fffffff00000000, 9223372032559808512 = 0x9234567700000001, -7911603576282021887 0x1234567800000001, 1311768464867721217 + 0x7fffffff00000001, 9223372032559808513 = 0x9234567700000002, -7911603576282021886 0x1234567800000001, 1311768464867721217 + 0x7fffffff00012345, 9223372032559883077 = 0x9234567700012346, -7911603576281947322 0x1234567800000001, 1311768464867721217 + 0x7fffffff12345678, 9223372032865228408 = 0x9234567712345679, -7911603575976601991 0x1234567800000001, 1311768464867721217 + 0x7fffffff7fffffff, 9223372034707292159 = 0x9234567780000000, -7911603574134538240 0x1234567800000001, 1311768464867721217 + 0x7fffffffffffffff, 9223372036854775807 = 0x9234567800000000, -7911603571987054592 0x1234567800000001, 1311768464867721217 + 0xffffffff00000000, -4294967296 = 0x1234567700000001, 1311768460572753921 0x1234567800000001, 1311768464867721217 + 0xffffffff00000001, -4294967295 = 0x1234567700000002, 1311768460572753922 0x1234567800000001, 1311768464867721217 + 0xffffffff00012345, -4294892731 = 0x1234567700012346, 1311768460572828486 0x1234567800000001, 1311768464867721217 + 0xffffffff12345678, -3989547400 = 0x1234567712345679, 1311768460878173817 0x1234567800000001, 1311768464867721217 + 0xffffffff7fffffff, -2147483649 = 0x1234567780000000, 1311768462720237568 0x1234567800000001, 1311768464867721217 + 0xffffffffffffffff, -1 = 0x1234567800000000, 1311768464867721216 0x1234567800012345, 1311768464867795781 + 0x0000000000000000, 0 = 0x1234567800012345, 1311768464867795781 0x1234567800012345, 1311768464867795781 + 0x0000000000000001, 1 = 0x1234567800012346, 1311768464867795782 0x1234567800012345, 1311768464867795781 + 0x0000000000012345, 74565 = 0x123456780002468a, 1311768464867870346 0x1234567800012345, 1311768464867795781 + 0x0000000012345678, 305419896 = 0x12345678123579bd, 1311768465173215677 0x1234567800012345, 1311768464867795781 + 0x000000007fffffff, 2147483647 = 0x1234567880012344, 1311768467015279428 0x1234567800012345, 1311768464867795781 + 0x00000000ffffffff, 4294967295 = 0x1234567900