summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/bigint
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/bigint')
-rw-r--r--js/src/jit-test/tests/bigint/asIntN.js473
-rw-r--r--js/src/jit-test/tests/bigint/asIntN32.js65
-rw-r--r--js/src/jit-test/tests/bigint/asIntN64.js65
-rw-r--r--js/src/jit-test/tests/bigint/asUintN.js473
-rw-r--r--js/src/jit-test/tests/bigint/asUintN32.js65
-rw-r--r--js/src/jit-test/tests/bigint/asUintN64.js65
-rw-r--r--js/src/jit-test/tests/bigint/bigint-add.js718
-rw-r--r--js/src/jit-test/tests/bigint/bigint-and.js718
-rw-r--r--js/src/jit-test/tests/bigint/bigint-cmp-equality.js2442
-rw-r--r--js/src/jit-test/tests/bigint/bigint-cmp-relational.js4779
-rw-r--r--js/src/jit-test/tests/bigint/bigint-dec.js51
-rw-r--r--js/src/jit-test/tests/bigint/bigint-div-bailout.js31
-rw-r--r--js/src/jit-test/tests/bigint/bigint-div-by-zero.js16
-rw-r--r--js/src/jit-test/tests/bigint/bigint-div.js1346
-rw-r--r--js/src/jit-test/tests/bigint/bigint-inc.js51
-rw-r--r--js/src/jit-test/tests/bigint/bigint-lsh.js894
-rw-r--r--js/src/jit-test/tests/bigint/bigint-mod-bailout.js31
-rw-r--r--js/src/jit-test/tests/bigint/bigint-mod-by-zero.js16
-rw-r--r--js/src/jit-test/tests/bigint/bigint-mod.js1346
-rw-r--r--js/src/jit-test/tests/bigint/bigint-mul.js1473
-rw-r--r--js/src/jit-test/tests/bigint/bigint-neg.js51
-rw-r--r--js/src/jit-test/tests/bigint/bigint-not.js51
-rw-r--r--js/src/jit-test/tests/bigint/bigint-or.js718
-rw-r--r--js/src/jit-test/tests/bigint/bigint-pow-bailout.js31
-rw-r--r--js/src/jit-test/tests/bigint/bigint-pow-negative-exponent.js16
-rw-r--r--js/src/jit-test/tests/bigint/bigint-pow.js527
-rw-r--r--js/src/jit-test/tests/bigint/bigint-rsh.js894
-rw-r--r--js/src/jit-test/tests/bigint/bigint-sub.js1383
-rw-r--r--js/src/jit-test/tests/bigint/bigint-xor.js718
-rw-r--r--js/src/jit-test/tests/bigint/bug1531269.js13
-rw-r--r--js/src/jit-test/tests/bigint/bug1551128.js6
-rw-r--r--js/src/jit-test/tests/bigint/bug1580020.js14
-rw-r--r--js/src/jit-test/tests/bigint/bug1679003.js4
-rw-r--r--js/src/jit-test/tests/bigint/bug1784435.js4
-rw-r--r--js/src/jit-test/tests/bigint/bug1849099.js14
35 files changed, 19562 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/bigint/asIntN.js b/js/src/jit-test/tests/bigint/asIntN.js
new file mode 100644
index 0000000000..392d8f63b0
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/asIntN.js
@@ -0,0 +1,473 @@
+const tests = [
+ [-0x10000000000000001n, 0, 0n],
+ [-0x10000000000000000n, 0, 0n],
+ [-0xffffffffffffffffn, 0, 0n],
+ [-0xfffffffffffffffen, 0, 0n],
+ [-0x8000000000000001n, 0, 0n],
+ [-0x8000000000000000n, 0, 0n],
+ [-0x7fffffffffffffffn, 0, 0n],
+ [-0x7ffffffffffffffen, 0, 0n],
+ [-0x100000001n, 0, 0n],
+ [-0x100000000n, 0, 0n],
+ [-0xffffffffn, 0, 0n],
+ [-0xfffffffen, 0, 0n],
+ [-0x80000001n, 0, 0n],
+ [-0x80000000n, 0, 0n],
+ [-0x7fffffffn, 0, 0n],
+ [-0x7ffffffen, 0, 0n],
+ [-9n, 0, 0n],
+ [-8n, 0, 0n],
+ [-7n, 0, 0n],
+ [-6n, 0, 0n],
+ [-5n, 0, 0n],
+ [-4n, 0, 0n],
+ [-3n, 0, 0n],
+ [-2n, 0, 0n],
+ [-1n, 0, 0n],
+ [0n, 0, 0n],
+ [1n, 0, 0n],
+ [2n, 0, 0n],
+ [3n, 0, 0n],
+ [4n, 0, 0n],
+ [5n, 0, 0n],
+ [6n, 0, 0n],
+ [7n, 0, 0n],
+ [8n, 0, 0n],
+ [9n, 0, 0n],
+ [0x7ffffffen, 0, 0n],
+ [0x7fffffffn, 0, 0n],
+ [0x80000000n, 0, 0n],
+ [0x80000001n, 0, 0n],
+ [0xfffffffen, 0, 0n],
+ [0xffffffffn, 0, 0n],
+ [0x100000000n, 0, 0n],
+ [0x100000001n, 0, 0n],
+ [0x7ffffffffffffffen, 0, 0n],
+ [0x7fffffffffffffffn, 0, 0n],
+ [0x8000000000000000n, 0, 0n],
+ [0x8000000000000001n, 0, 0n],
+ [0xfffffffffffffffen, 0, 0n],
+ [0xffffffffffffffffn, 0, 0n],
+ [0x10000000000000000n, 0, 0n],
+ [0x10000000000000001n, 0, 0n],
+ [-0x10000000000000001n, 1, -1n],
+ [-0x10000000000000000n, 1, 0n],
+ [-0xffffffffffffffffn, 1, -1n],
+ [-0xfffffffffffffffen, 1, 0n],
+ [-0x8000000000000001n, 1, -1n],
+ [-0x8000000000000000n, 1, 0n],
+ [-0x7fffffffffffffffn, 1, -1n],
+ [-0x7ffffffffffffffen, 1, 0n],
+ [-0x100000001n, 1, -1n],
+ [-0x100000000n, 1, 0n],
+ [-0xffffffffn, 1, -1n],
+ [-0xfffffffen, 1, 0n],
+ [-0x80000001n, 1, -1n],
+ [-0x80000000n, 1, 0n],
+ [-0x7fffffffn, 1, -1n],
+ [-0x7ffffffen, 1, 0n],
+ [-9n, 1, -1n],
+ [-8n, 1, 0n],
+ [-7n, 1, -1n],
+ [-6n, 1, 0n],
+ [-5n, 1, -1n],
+ [-4n, 1, 0n],
+ [-3n, 1, -1n],
+ [-2n, 1, 0n],
+ [-1n, 1, -1n],
+ [0n, 1, 0n],
+ [1n, 1, -1n],
+ [2n, 1, 0n],
+ [3n, 1, -1n],
+ [4n, 1, 0n],
+ [5n, 1, -1n],
+ [6n, 1, 0n],
+ [7n, 1, -1n],
+ [8n, 1, 0n],
+ [9n, 1, -1n],
+ [0x7ffffffen, 1, 0n],
+ [0x7fffffffn, 1, -1n],
+ [0x80000000n, 1, 0n],
+ [0x80000001n, 1, -1n],
+ [0xfffffffen, 1, 0n],
+ [0xffffffffn, 1, -1n],
+ [0x100000000n, 1, 0n],
+ [0x100000001n, 1, -1n],
+ [0x7ffffffffffffffen, 1, 0n],
+ [0x7fffffffffffffffn, 1, -1n],
+ [0x8000000000000000n, 1, 0n],
+ [0x8000000000000001n, 1, -1n],
+ [0xfffffffffffffffen, 1, 0n],
+ [0xffffffffffffffffn, 1, -1n],
+ [0x10000000000000000n, 1, 0n],
+ [0x10000000000000001n, 1, -1n],
+ [-0x10000000000000001n, 2, -1n],
+ [-0x10000000000000000n, 2, 0n],
+ [-0xffffffffffffffffn, 2, 1n],
+ [-0xfffffffffffffffen, 2, -2n],
+ [-0x8000000000000001n, 2, -1n],
+ [-0x8000000000000000n, 2, 0n],
+ [-0x7fffffffffffffffn, 2, 1n],
+ [-0x7ffffffffffffffen, 2, -2n],
+ [-0x100000001n, 2, -1n],
+ [-0x100000000n, 2, 0n],
+ [-0xffffffffn, 2, 1n],
+ [-0xfffffffen, 2, -2n],
+ [-0x80000001n, 2, -1n],
+ [-0x80000000n, 2, 0n],
+ [-0x7fffffffn, 2, 1n],
+ [-0x7ffffffen, 2, -2n],
+ [-9n, 2, -1n],
+ [-8n, 2, 0n],
+ [-7n, 2, 1n],
+ [-6n, 2, -2n],
+ [-5n, 2, -1n],
+ [-4n, 2, 0n],
+ [-3n, 2, 1n],
+ [-2n, 2, -2n],
+ [-1n, 2, -1n],
+ [0n, 2, 0n],
+ [1n, 2, 1n],
+ [2n, 2, -2n],
+ [3n, 2, -1n],
+ [4n, 2, 0n],
+ [5n, 2, 1n],
+ [6n, 2, -2n],
+ [7n, 2, -1n],
+ [8n, 2, 0n],
+ [9n, 2, 1n],
+ [0x7ffffffen, 2, -2n],
+ [0x7fffffffn, 2, -1n],
+ [0x80000000n, 2, 0n],
+ [0x80000001n, 2, 1n],
+ [0xfffffffen, 2, -2n],
+ [0xffffffffn, 2, -1n],
+ [0x100000000n, 2, 0n],
+ [0x100000001n, 2, 1n],
+ [0x7ffffffffffffffen, 2, -2n],
+ [0x7fffffffffffffffn, 2, -1n],
+ [0x8000000000000000n, 2, 0n],
+ [0x8000000000000001n, 2, 1n],
+ [0xfffffffffffffffen, 2, -2n],
+ [0xffffffffffffffffn, 2, -1n],
+ [0x10000000000000000n, 2, 0n],
+ [0x10000000000000001n, 2, 1n],
+ [-0x10000000000000001n, 31, -1n],
+ [-0x10000000000000000n, 31, 0n],
+ [-0xffffffffffffffffn, 31, 1n],
+ [-0xfffffffffffffffen, 31, 2n],
+ [-0x8000000000000001n, 31, -1n],
+ [-0x8000000000000000n, 31, 0n],
+ [-0x7fffffffffffffffn, 31, 1n],
+ [-0x7ffffffffffffffen, 31, 2n],
+ [-0x100000001n, 31, -1n],
+ [-0x100000000n, 31, 0n],
+ [-0xffffffffn, 31, 1n],
+ [-0xfffffffen, 31, 2n],
+ [-0x80000001n, 31, -1n],
+ [-0x80000000n, 31, 0n],
+ [-0x7fffffffn, 31, 1n],
+ [-0x7ffffffen, 31, 2n],
+ [-9n, 31, -9n],
+ [-8n, 31, -8n],
+ [-7n, 31, -7n],
+ [-6n, 31, -6n],
+ [-5n, 31, -5n],
+ [-4n, 31, -4n],
+ [-3n, 31, -3n],
+ [-2n, 31, -2n],
+ [-1n, 31, -1n],
+ [0n, 31, 0n],
+ [1n, 31, 1n],
+ [2n, 31, 2n],
+ [3n, 31, 3n],
+ [4n, 31, 4n],
+ [5n, 31, 5n],
+ [6n, 31, 6n],
+ [7n, 31, 7n],
+ [8n, 31, 8n],
+ [9n, 31, 9n],
+ [0x7ffffffen, 31, -2n],
+ [0x7fffffffn, 31, -1n],
+ [0x80000000n, 31, 0n],
+ [0x80000001n, 31, 1n],
+ [0xfffffffen, 31, -2n],
+ [0xffffffffn, 31, -1n],
+ [0x100000000n, 31, 0n],
+ [0x100000001n, 31, 1n],
+ [0x7ffffffffffffffen, 31, -2n],
+ [0x7fffffffffffffffn, 31, -1n],
+ [0x8000000000000000n, 31, 0n],
+ [0x8000000000000001n, 31, 1n],
+ [0xfffffffffffffffen, 31, -2n],
+ [0xffffffffffffffffn, 31, -1n],
+ [0x10000000000000000n, 31, 0n],
+ [0x10000000000000001n, 31, 1n],
+ [-0x10000000000000001n, 32, -1n],
+ [-0x10000000000000000n, 32, 0n],
+ [-0xffffffffffffffffn, 32, 1n],
+ [-0xfffffffffffffffen, 32, 2n],
+ [-0x8000000000000001n, 32, -1n],
+ [-0x8000000000000000n, 32, 0n],
+ [-0x7fffffffffffffffn, 32, 1n],
+ [-0x7ffffffffffffffen, 32, 2n],
+ [-0x100000001n, 32, -1n],
+ [-0x100000000n, 32, 0n],
+ [-0xffffffffn, 32, 1n],
+ [-0xfffffffen, 32, 2n],
+ [-0x80000001n, 32, 0x7fffffffn],
+ [-0x80000000n, 32, -0x80000000n],
+ [-0x7fffffffn, 32, -0x7fffffffn],
+ [-0x7ffffffen, 32, -0x7ffffffen],
+ [-9n, 32, -9n],
+ [-8n, 32, -8n],
+ [-7n, 32, -7n],
+ [-6n, 32, -6n],
+ [-5n, 32, -5n],
+ [-4n, 32, -4n],
+ [-3n, 32, -3n],
+ [-2n, 32, -2n],
+ [-1n, 32, -1n],
+ [0n, 32, 0n],
+ [1n, 32, 1n],
+ [2n, 32, 2n],
+ [3n, 32, 3n],
+ [4n, 32, 4n],
+ [5n, 32, 5n],
+ [6n, 32, 6n],
+ [7n, 32, 7n],
+ [8n, 32, 8n],
+ [9n, 32, 9n],
+ [0x7ffffffen, 32, 0x7ffffffen],
+ [0x7fffffffn, 32, 0x7fffffffn],
+ [0x80000000n, 32, -0x80000000n],
+ [0x80000001n, 32, -0x7fffffffn],
+ [0xfffffffen, 32, -2n],
+ [0xffffffffn, 32, -1n],
+ [0x100000000n, 32, 0n],
+ [0x100000001n, 32, 1n],
+ [0x7ffffffffffffffen, 32, -2n],
+ [0x7fffffffffffffffn, 32, -1n],
+ [0x8000000000000000n, 32, 0n],
+ [0x8000000000000001n, 32, 1n],
+ [0xfffffffffffffffen, 32, -2n],
+ [0xffffffffffffffffn, 32, -1n],
+ [0x10000000000000000n, 32, 0n],
+ [0x10000000000000001n, 32, 1n],
+ [-0x10000000000000001n, 33, -1n],
+ [-0x10000000000000000n, 33, 0n],
+ [-0xffffffffffffffffn, 33, 1n],
+ [-0xfffffffffffffffen, 33, 2n],
+ [-0x8000000000000001n, 33, -1n],
+ [-0x8000000000000000n, 33, 0n],
+ [-0x7fffffffffffffffn, 33, 1n],
+ [-0x7ffffffffffffffen, 33, 2n],
+ [-0x100000001n, 33, 0xffffffffn],
+ [-0x100000000n, 33, -0x100000000n],
+ [-0xffffffffn, 33, -0xffffffffn],
+ [-0xfffffffen, 33, -0xfffffffen],
+ [-0x80000001n, 33, -0x80000001n],
+ [-0x80000000n, 33, -0x80000000n],
+ [-0x7fffffffn, 33, -0x7fffffffn],
+ [-0x7ffffffen, 33, -0x7ffffffen],
+ [-9n, 33, -9n],
+ [-8n, 33, -8n],
+ [-7n, 33, -7n],
+ [-6n, 33, -6n],
+ [-5n, 33, -5n],
+ [-4n, 33, -4n],
+ [-3n, 33, -3n],
+ [-2n, 33, -2n],
+ [-1n, 33, -1n],
+ [0n, 33, 0n],
+ [1n, 33, 1n],
+ [2n, 33, 2n],
+ [3n, 33, 3n],
+ [4n, 33, 4n],
+ [5n, 33, 5n],
+ [6n, 33, 6n],
+ [7n, 33, 7n],
+ [8n, 33, 8n],
+ [9n, 33, 9n],
+ [0x7ffffffen, 33, 0x7ffffffen],
+ [0x7fffffffn, 33, 0x7fffffffn],
+ [0x80000000n, 33, 0x80000000n],
+ [0x80000001n, 33, 0x80000001n],
+ [0xfffffffen, 33, 0xfffffffen],
+ [0xffffffffn, 33, 0xffffffffn],
+ [0x100000000n, 33, -0x100000000n],
+ [0x100000001n, 33, -0xffffffffn],
+ [0x7ffffffffffffffen, 33, -2n],
+ [0x7fffffffffffffffn, 33, -1n],
+ [0x8000000000000000n, 33, 0n],
+ [0x8000000000000001n, 33, 1n],
+ [0xfffffffffffffffen, 33, -2n],
+ [0xffffffffffffffffn, 33, -1n],
+ [0x10000000000000000n, 33, 0n],
+ [0x10000000000000001n, 33, 1n],
+ [-0x10000000000000001n, 63, -1n],
+ [-0x10000000000000000n, 63, 0n],
+ [-0xffffffffffffffffn, 63, 1n],
+ [-0xfffffffffffffffen, 63, 2n],
+ [-0x8000000000000001n, 63, -1n],
+ [-0x8000000000000000n, 63, 0n],
+ [-0x7fffffffffffffffn, 63, 1n],
+ [-0x7ffffffffffffffen, 63, 2n],
+ [-0x100000001n, 63, -0x100000001n],
+ [-0x100000000n, 63, -0x100000000n],
+ [-0xffffffffn, 63, -0xffffffffn],
+ [-0xfffffffen, 63, -0xfffffffen],
+ [-0x80000001n, 63, -0x80000001n],
+ [-0x80000000n, 63, -0x80000000n],
+ [-0x7fffffffn, 63, -0x7fffffffn],
+ [-0x7ffffffen, 63, -0x7ffffffen],
+ [-9n, 63, -9n],
+ [-8n, 63, -8n],
+ [-7n, 63, -7n],
+ [-6n, 63, -6n],
+ [-5n, 63, -5n],
+ [-4n, 63, -4n],
+ [-3n, 63, -3n],
+ [-2n, 63, -2n],
+ [-1n, 63, -1n],
+ [0n, 63, 0n],
+ [1n, 63, 1n],
+ [2n, 63, 2n],
+ [3n, 63, 3n],
+ [4n, 63, 4n],
+ [5n, 63, 5n],
+ [6n, 63, 6n],
+ [7n, 63, 7n],
+ [8n, 63, 8n],
+ [9n, 63, 9n],
+ [0x7ffffffen, 63, 0x7ffffffen],
+ [0x7fffffffn, 63, 0x7fffffffn],
+ [0x80000000n, 63, 0x80000000n],
+ [0x80000001n, 63, 0x80000001n],
+ [0xfffffffen, 63, 0xfffffffen],
+ [0xffffffffn, 63, 0xffffffffn],
+ [0x100000000n, 63, 0x100000000n],
+ [0x100000001n, 63, 0x100000001n],
+ [0x7ffffffffffffffen, 63, -2n],
+ [0x7fffffffffffffffn, 63, -1n],
+ [0x8000000000000000n, 63, 0n],
+ [0x8000000000000001n, 63, 1n],
+ [0xfffffffffffffffen, 63, -2n],
+ [0xffffffffffffffffn, 63, -1n],
+ [0x10000000000000000n, 63, 0n],
+ [0x10000000000000001n, 63, 1n],
+ [-0x10000000000000001n, 64, -1n],
+ [-0x10000000000000000n, 64, 0n],
+ [-0xffffffffffffffffn, 64, 1n],
+ [-0xfffffffffffffffen, 64, 2n],
+ [-0x8000000000000001n, 64, 0x7fffffffffffffffn],
+ [-0x8000000000000000n, 64, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 64, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 64, -0x7ffffffffffffffen],
+ [-0x100000001n, 64, -0x100000001n],
+ [-0x100000000n, 64, -0x100000000n],
+ [-0xffffffffn, 64, -0xffffffffn],
+ [-0xfffffffen, 64, -0xfffffffen],
+ [-0x80000001n, 64, -0x80000001n],
+ [-0x80000000n, 64, -0x80000000n],
+ [-0x7fffffffn, 64, -0x7fffffffn],
+ [-0x7ffffffen, 64, -0x7ffffffen],
+ [-9n, 64, -9n],
+ [-8n, 64, -8n],
+ [-7n, 64, -7n],
+ [-6n, 64, -6n],
+ [-5n, 64, -5n],
+ [-4n, 64, -4n],
+ [-3n, 64, -3n],
+ [-2n, 64, -2n],
+ [-1n, 64, -1n],
+ [0n, 64, 0n],
+ [1n, 64, 1n],
+ [2n, 64, 2n],
+ [3n, 64, 3n],
+ [4n, 64, 4n],
+ [5n, 64, 5n],
+ [6n, 64, 6n],
+ [7n, 64, 7n],
+ [8n, 64, 8n],
+ [9n, 64, 9n],
+ [0x7ffffffen, 64, 0x7ffffffen],
+ [0x7fffffffn, 64, 0x7fffffffn],
+ [0x80000000n, 64, 0x80000000n],
+ [0x80000001n, 64, 0x80000001n],
+ [0xfffffffen, 64, 0xfffffffen],
+ [0xffffffffn, 64, 0xffffffffn],
+ [0x100000000n, 64, 0x100000000n],
+ [0x100000001n, 64, 0x100000001n],
+ [0x7ffffffffffffffen, 64, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 64, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 64, -0x8000000000000000n],
+ [0x8000000000000001n, 64, -0x7fffffffffffffffn],
+ [0xfffffffffffffffen, 64, -2n],
+ [0xffffffffffffffffn, 64, -1n],
+ [0x10000000000000000n, 64, 0n],
+ [0x10000000000000001n, 64, 1n],
+ [-0x10000000000000001n, 65, 0xffffffffffffffffn],
+ [-0x10000000000000000n, 65, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 65, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 65, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 65, -0x8000000000000001n],
+ [-0x8000000000000000n, 65, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 65, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 65, -0x7ffffffffffffffen],
+ [-0x100000001n, 65, -0x100000001n],
+ [-0x100000000n, 65, -0x100000000n],
+ [-0xffffffffn, 65, -0xffffffffn],
+ [-0xfffffffen, 65, -0xfffffffen],
+ [-0x80000001n, 65, -0x80000001n],
+ [-0x80000000n, 65, -0x80000000n],
+ [-0x7fffffffn, 65, -0x7fffffffn],
+ [-0x7ffffffen, 65, -0x7ffffffen],
+ [-9n, 65, -9n],
+ [-8n, 65, -8n],
+ [-7n, 65, -7n],
+ [-6n, 65, -6n],
+ [-5n, 65, -5n],
+ [-4n, 65, -4n],
+ [-3n, 65, -3n],
+ [-2n, 65, -2n],
+ [-1n, 65, -1n],
+ [0n, 65, 0n],
+ [1n, 65, 1n],
+ [2n, 65, 2n],
+ [3n, 65, 3n],
+ [4n, 65, 4n],
+ [5n, 65, 5n],
+ [6n, 65, 6n],
+ [7n, 65, 7n],
+ [8n, 65, 8n],
+ [9n, 65, 9n],
+ [0x7ffffffen, 65, 0x7ffffffen],
+ [0x7fffffffn, 65, 0x7fffffffn],
+ [0x80000000n, 65, 0x80000000n],
+ [0x80000001n, 65, 0x80000001n],
+ [0xfffffffen, 65, 0xfffffffen],
+ [0xffffffffn, 65, 0xffffffffn],
+ [0x100000000n, 65, 0x100000000n],
+ [0x100000001n, 65, 0x100000001n],
+ [0x7ffffffffffffffen, 65, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 65, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 65, 0x8000000000000000n],
+ [0x8000000000000001n, 65, 0x8000000000000001n],
+ [0xfffffffffffffffen, 65, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 65, 0xffffffffffffffffn],
+ [0x10000000000000000n, 65, -0x10000000000000000n],
+ [0x10000000000000001n, 65, -0xffffffffffffffffn],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], bits = test[1], expected = test[2];
+
+ assertEq(BigInt.asIntN(bits, input), expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/asIntN32.js b/js/src/jit-test/tests/bigint/asIntN32.js
new file mode 100644
index 0000000000..ebc570d965
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/asIntN32.js
@@ -0,0 +1,65 @@
+const tests = [
+ [-0x10000000000000001n, -1n],
+ [-0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, 1n],
+ [-0xfffffffffffffffen, 2n],
+ [-0x8000000000000001n, -1n],
+ [-0x8000000000000000n, 0n],
+ [-0x7fffffffffffffffn, 1n],
+ [-0x7ffffffffffffffen, 2n],
+ [-0x100000001n, -1n],
+ [-0x100000000n, 0n],
+ [-0xffffffffn, 1n],
+ [-0xfffffffen, 2n],
+ [-0x80000001n, 0x7fffffffn],
+ [-0x80000000n, -0x80000000n],
+ [-0x7fffffffn, -0x7fffffffn],
+ [-0x7ffffffen, -0x7ffffffen],
+ [-9n, -9n],
+ [-8n, -8n],
+ [-7n, -7n],
+ [-6n, -6n],
+ [-5n, -5n],
+ [-4n, -4n],
+ [-3n, -3n],
+ [-2n, -2n],
+ [-1n, -1n],
+ [0n, 0n],
+ [1n, 1n],
+ [2n, 2n],
+ [3n, 3n],
+ [4n, 4n],
+ [5n, 5n],
+ [6n, 6n],
+ [7n, 7n],
+ [8n, 8n],
+ [9n, 9n],
+ [0x7ffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0x7fffffffn],
+ [0x80000000n, -0x80000000n],
+ [0x80000001n, -0x7fffffffn],
+ [0xfffffffen, -2n],
+ [0xffffffffn, -1n],
+ [0x100000000n, 0n],
+ [0x100000001n, 1n],
+ [0x7ffffffffffffffen, -2n],
+ [0x7fffffffffffffffn, -1n],
+ [0x8000000000000000n, 0n],
+ [0x8000000000000001n, 1n],
+ [0xfffffffffffffffen, -2n],
+ [0xffffffffffffffffn, -1n],
+ [0x10000000000000000n, 0n],
+ [0x10000000000000001n, 1n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(BigInt.asIntN(32, input), expected);
+ }
+}
+
+for (let i = 0; i < 100; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/asIntN64.js b/js/src/jit-test/tests/bigint/asIntN64.js
new file mode 100644
index 0000000000..5725d32f04
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/asIntN64.js
@@ -0,0 +1,65 @@
+const tests = [
+ [-0x10000000000000001n, -1n],
+ [-0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, 1n],
+ [-0xfffffffffffffffen, 2n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn],
+ [-0x8000000000000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x100000001n],
+ [-0x100000000n, -0x100000000n],
+ [-0xffffffffn, -0xffffffffn],
+ [-0xfffffffen, -0xfffffffen],
+ [-0x80000001n, -0x80000001n],
+ [-0x80000000n, -0x80000000n],
+ [-0x7fffffffn, -0x7fffffffn],
+ [-0x7ffffffen, -0x7ffffffen],
+ [-9n, -9n],
+ [-8n, -8n],
+ [-7n, -7n],
+ [-6n, -6n],
+ [-5n, -5n],
+ [-4n, -4n],
+ [-3n, -3n],
+ [-2n, -2n],
+ [-1n, -1n],
+ [0n, 0n],
+ [1n, 1n],
+ [2n, 2n],
+ [3n, 3n],
+ [4n, 4n],
+ [5n, 5n],
+ [6n, 6n],
+ [7n, 7n],
+ [8n, 8n],
+ [9n, 9n],
+ [0x7ffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0x7fffffffn],
+ [0x80000000n, 0x80000000n],
+ [0x80000001n, 0x80000001n],
+ [0xfffffffen, 0xfffffffen],
+ [0xffffffffn, 0xffffffffn],
+ [0x100000000n, 0x100000000n],
+ [0x100000001n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -0x8000000000000000n],
+ [0x8000000000000001n, -0x7fffffffffffffffn],
+ [0xfffffffffffffffen, -2n],
+ [0xffffffffffffffffn, -1n],
+ [0x10000000000000000n, 0n],
+ [0x10000000000000001n, 1n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(BigInt.asIntN(64, input), expected);
+ }
+}
+
+for (let i = 0; i < 100; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/asUintN.js b/js/src/jit-test/tests/bigint/asUintN.js
new file mode 100644
index 0000000000..07e1d9b6ac
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/asUintN.js
@@ -0,0 +1,473 @@
+const tests = [
+ [-0x10000000000000001n, 0, 0n],
+ [-0x10000000000000000n, 0, 0n],
+ [-0xffffffffffffffffn, 0, 0n],
+ [-0xfffffffffffffffen, 0, 0n],
+ [-0x8000000000000001n, 0, 0n],
+ [-0x8000000000000000n, 0, 0n],
+ [-0x7fffffffffffffffn, 0, 0n],
+ [-0x7ffffffffffffffen, 0, 0n],
+ [-0x100000001n, 0, 0n],
+ [-0x100000000n, 0, 0n],
+ [-0xffffffffn, 0, 0n],
+ [-0xfffffffen, 0, 0n],
+ [-0x80000001n, 0, 0n],
+ [-0x80000000n, 0, 0n],
+ [-0x7fffffffn, 0, 0n],
+ [-0x7ffffffen, 0, 0n],
+ [-9n, 0, 0n],
+ [-8n, 0, 0n],
+ [-7n, 0, 0n],
+ [-6n, 0, 0n],
+ [-5n, 0, 0n],
+ [-4n, 0, 0n],
+ [-3n, 0, 0n],
+ [-2n, 0, 0n],
+ [-1n, 0, 0n],
+ [0n, 0, 0n],
+ [1n, 0, 0n],
+ [2n, 0, 0n],
+ [3n, 0, 0n],
+ [4n, 0, 0n],
+ [5n, 0, 0n],
+ [6n, 0, 0n],
+ [7n, 0, 0n],
+ [8n, 0, 0n],
+ [9n, 0, 0n],
+ [0x7ffffffen, 0, 0n],
+ [0x7fffffffn, 0, 0n],
+ [0x80000000n, 0, 0n],
+ [0x80000001n, 0, 0n],
+ [0xfffffffen, 0, 0n],
+ [0xffffffffn, 0, 0n],
+ [0x100000000n, 0, 0n],
+ [0x100000001n, 0, 0n],
+ [0x7ffffffffffffffen, 0, 0n],
+ [0x7fffffffffffffffn, 0, 0n],
+ [0x8000000000000000n, 0, 0n],
+ [0x8000000000000001n, 0, 0n],
+ [0xfffffffffffffffen, 0, 0n],
+ [0xffffffffffffffffn, 0, 0n],
+ [0x10000000000000000n, 0, 0n],
+ [0x10000000000000001n, 0, 0n],
+ [-0x10000000000000001n, 1, 1n],
+ [-0x10000000000000000n, 1, 0n],
+ [-0xffffffffffffffffn, 1, 1n],
+ [-0xfffffffffffffffen, 1, 0n],
+ [-0x8000000000000001n, 1, 1n],
+ [-0x8000000000000000n, 1, 0n],
+ [-0x7fffffffffffffffn, 1, 1n],
+ [-0x7ffffffffffffffen, 1, 0n],
+ [-0x100000001n, 1, 1n],
+ [-0x100000000n, 1, 0n],
+ [-0xffffffffn, 1, 1n],
+ [-0xfffffffen, 1, 0n],
+ [-0x80000001n, 1, 1n],
+ [-0x80000000n, 1, 0n],
+ [-0x7fffffffn, 1, 1n],
+ [-0x7ffffffen, 1, 0n],
+ [-9n, 1, 1n],
+ [-8n, 1, 0n],
+ [-7n, 1, 1n],
+ [-6n, 1, 0n],
+ [-5n, 1, 1n],
+ [-4n, 1, 0n],
+ [-3n, 1, 1n],
+ [-2n, 1, 0n],
+ [-1n, 1, 1n],
+ [0n, 1, 0n],
+ [1n, 1, 1n],
+ [2n, 1, 0n],
+ [3n, 1, 1n],
+ [4n, 1, 0n],
+ [5n, 1, 1n],
+ [6n, 1, 0n],
+ [7n, 1, 1n],
+ [8n, 1, 0n],
+ [9n, 1, 1n],
+ [0x7ffffffen, 1, 0n],
+ [0x7fffffffn, 1, 1n],
+ [0x80000000n, 1, 0n],
+ [0x80000001n, 1, 1n],
+ [0xfffffffen, 1, 0n],
+ [0xffffffffn, 1, 1n],
+ [0x100000000n, 1, 0n],
+ [0x100000001n, 1, 1n],
+ [0x7ffffffffffffffen, 1, 0n],
+ [0x7fffffffffffffffn, 1, 1n],
+ [0x8000000000000000n, 1, 0n],
+ [0x8000000000000001n, 1, 1n],
+ [0xfffffffffffffffen, 1, 0n],
+ [0xffffffffffffffffn, 1, 1n],
+ [0x10000000000000000n, 1, 0n],
+ [0x10000000000000001n, 1, 1n],
+ [-0x10000000000000001n, 2, 3n],
+ [-0x10000000000000000n, 2, 0n],
+ [-0xffffffffffffffffn, 2, 1n],
+ [-0xfffffffffffffffen, 2, 2n],
+ [-0x8000000000000001n, 2, 3n],
+ [-0x8000000000000000n, 2, 0n],
+ [-0x7fffffffffffffffn, 2, 1n],
+ [-0x7ffffffffffffffen, 2, 2n],
+ [-0x100000001n, 2, 3n],
+ [-0x100000000n, 2, 0n],
+ [-0xffffffffn, 2, 1n],
+ [-0xfffffffen, 2, 2n],
+ [-0x80000001n, 2, 3n],
+ [-0x80000000n, 2, 0n],
+ [-0x7fffffffn, 2, 1n],
+ [-0x7ffffffen, 2, 2n],
+ [-9n, 2, 3n],
+ [-8n, 2, 0n],
+ [-7n, 2, 1n],
+ [-6n, 2, 2n],
+ [-5n, 2, 3n],
+ [-4n, 2, 0n],
+ [-3n, 2, 1n],
+ [-2n, 2, 2n],
+ [-1n, 2, 3n],
+ [0n, 2, 0n],
+ [1n, 2, 1n],
+ [2n, 2, 2n],
+ [3n, 2, 3n],
+ [4n, 2, 0n],
+ [5n, 2, 1n],
+ [6n, 2, 2n],
+ [7n, 2, 3n],
+ [8n, 2, 0n],
+ [9n, 2, 1n],
+ [0x7ffffffen, 2, 2n],
+ [0x7fffffffn, 2, 3n],
+ [0x80000000n, 2, 0n],
+ [0x80000001n, 2, 1n],
+ [0xfffffffen, 2, 2n],
+ [0xffffffffn, 2, 3n],
+ [0x100000000n, 2, 0n],
+ [0x100000001n, 2, 1n],
+ [0x7ffffffffffffffen, 2, 2n],
+ [0x7fffffffffffffffn, 2, 3n],
+ [0x8000000000000000n, 2, 0n],
+ [0x8000000000000001n, 2, 1n],
+ [0xfffffffffffffffen, 2, 2n],
+ [0xffffffffffffffffn, 2, 3n],
+ [0x10000000000000000n, 2, 0n],
+ [0x10000000000000001n, 2, 1n],
+ [-0x10000000000000001n, 31, 0x7fffffffn],
+ [-0x10000000000000000n, 31, 0n],
+ [-0xffffffffffffffffn, 31, 1n],
+ [-0xfffffffffffffffen, 31, 2n],
+ [-0x8000000000000001n, 31, 0x7fffffffn],
+ [-0x8000000000000000n, 31, 0n],
+ [-0x7fffffffffffffffn, 31, 1n],
+ [-0x7ffffffffffffffen, 31, 2n],
+ [-0x100000001n, 31, 0x7fffffffn],
+ [-0x100000000n, 31, 0n],
+ [-0xffffffffn, 31, 1n],
+ [-0xfffffffen, 31, 2n],
+ [-0x80000001n, 31, 0x7fffffffn],
+ [-0x80000000n, 31, 0n],
+ [-0x7fffffffn, 31, 1n],
+ [-0x7ffffffen, 31, 2n],
+ [-9n, 31, 0x7ffffff7n],
+ [-8n, 31, 0x7ffffff8n],
+ [-7n, 31, 0x7ffffff9n],
+ [-6n, 31, 0x7ffffffan],
+ [-5n, 31, 0x7ffffffbn],
+ [-4n, 31, 0x7ffffffcn],
+ [-3n, 31, 0x7ffffffdn],
+ [-2n, 31, 0x7ffffffen],
+ [-1n, 31, 0x7fffffffn],
+ [0n, 31, 0n],
+ [1n, 31, 1n],
+ [2n, 31, 2n],
+ [3n, 31, 3n],
+ [4n, 31, 4n],
+ [5n, 31, 5n],
+ [6n, 31, 6n],
+ [7n, 31, 7n],
+ [8n, 31, 8n],
+ [9n, 31, 9n],
+ [0x7ffffffen, 31, 0x7ffffffen],
+ [0x7fffffffn, 31, 0x7fffffffn],
+ [0x80000000n, 31, 0n],
+ [0x80000001n, 31, 1n],
+ [0xfffffffen, 31, 0x7ffffffen],
+ [0xffffffffn, 31, 0x7fffffffn],
+ [0x100000000n, 31, 0n],
+ [0x100000001n, 31, 1n],
+ [0x7ffffffffffffffen, 31, 0x7ffffffen],
+ [0x7fffffffffffffffn, 31, 0x7fffffffn],
+ [0x8000000000000000n, 31, 0n],
+ [0x8000000000000001n, 31, 1n],
+ [0xfffffffffffffffen, 31, 0x7ffffffen],
+ [0xffffffffffffffffn, 31, 0x7fffffffn],
+ [0x10000000000000000n, 31, 0n],
+ [0x10000000000000001n, 31, 1n],
+ [-0x10000000000000001n, 32, 0xffffffffn],
+ [-0x10000000000000000n, 32, 0n],
+ [-0xffffffffffffffffn, 32, 1n],
+ [-0xfffffffffffffffen, 32, 2n],
+ [-0x8000000000000001n, 32, 0xffffffffn],
+ [-0x8000000000000000n, 32, 0n],
+ [-0x7fffffffffffffffn, 32, 1n],
+ [-0x7ffffffffffffffen, 32, 2n],
+ [-0x100000001n, 32, 0xffffffffn],
+ [-0x100000000n, 32, 0n],
+ [-0xffffffffn, 32, 1n],
+ [-0xfffffffen, 32, 2n],
+ [-0x80000001n, 32, 0x7fffffffn],
+ [-0x80000000n, 32, 0x80000000n],
+ [-0x7fffffffn, 32, 0x80000001n],
+ [-0x7ffffffen, 32, 0x80000002n],
+ [-9n, 32, 0xfffffff7n],
+ [-8n, 32, 0xfffffff8n],
+ [-7n, 32, 0xfffffff9n],
+ [-6n, 32, 0xfffffffan],
+ [-5n, 32, 0xfffffffbn],
+ [-4n, 32, 0xfffffffcn],
+ [-3n, 32, 0xfffffffdn],
+ [-2n, 32, 0xfffffffen],
+ [-1n, 32, 0xffffffffn],
+ [0n, 32, 0n],
+ [1n, 32, 1n],
+ [2n, 32, 2n],
+ [3n, 32, 3n],
+ [4n, 32, 4n],
+ [5n, 32, 5n],
+ [6n, 32, 6n],
+ [7n, 32, 7n],
+ [8n, 32, 8n],
+ [9n, 32, 9n],
+ [0x7ffffffen, 32, 0x7ffffffen],
+ [0x7fffffffn, 32, 0x7fffffffn],
+ [0x80000000n, 32, 0x80000000n],
+ [0x80000001n, 32, 0x80000001n],
+ [0xfffffffen, 32, 0xfffffffen],
+ [0xffffffffn, 32, 0xffffffffn],
+ [0x100000000n, 32, 0n],
+ [0x100000001n, 32, 1n],
+ [0x7ffffffffffffffen, 32, 0xfffffffen],
+ [0x7fffffffffffffffn, 32, 0xffffffffn],
+ [0x8000000000000000n, 32, 0n],
+ [0x8000000000000001n, 32, 1n],
+ [0xfffffffffffffffen, 32, 0xfffffffen],
+ [0xffffffffffffffffn, 32, 0xffffffffn],
+ [0x10000000000000000n, 32, 0n],
+ [0x10000000000000001n, 32, 1n],
+ [-0x10000000000000001n, 33, 0x1ffffffffn],
+ [-0x10000000000000000n, 33, 0n],
+ [-0xffffffffffffffffn, 33, 1n],
+ [-0xfffffffffffffffen, 33, 2n],
+ [-0x8000000000000001n, 33, 0x1ffffffffn],
+ [-0x8000000000000000n, 33, 0n],
+ [-0x7fffffffffffffffn, 33, 1n],
+ [-0x7ffffffffffffffen, 33, 2n],
+ [-0x100000001n, 33, 0xffffffffn],
+ [-0x100000000n, 33, 0x100000000n],
+ [-0xffffffffn, 33, 0x100000001n],
+ [-0xfffffffen, 33, 0x100000002n],
+ [-0x80000001n, 33, 0x17fffffffn],
+ [-0x80000000n, 33, 0x180000000n],
+ [-0x7fffffffn, 33, 0x180000001n],
+ [-0x7ffffffen, 33, 0x180000002n],
+ [-9n, 33, 0x1fffffff7n],
+ [-8n, 33, 0x1fffffff8n],
+ [-7n, 33, 0x1fffffff9n],
+ [-6n, 33, 0x1fffffffan],
+ [-5n, 33, 0x1fffffffbn],
+ [-4n, 33, 0x1fffffffcn],
+ [-3n, 33, 0x1fffffffdn],
+ [-2n, 33, 0x1fffffffen],
+ [-1n, 33, 0x1ffffffffn],
+ [0n, 33, 0n],
+ [1n, 33, 1n],
+ [2n, 33, 2n],
+ [3n, 33, 3n],
+ [4n, 33, 4n],
+ [5n, 33, 5n],
+ [6n, 33, 6n],
+ [7n, 33, 7n],
+ [8n, 33, 8n],
+ [9n, 33, 9n],
+ [0x7ffffffen, 33, 0x7ffffffen],
+ [0x7fffffffn, 33, 0x7fffffffn],
+ [0x80000000n, 33, 0x80000000n],
+ [0x80000001n, 33, 0x80000001n],
+ [0xfffffffen, 33, 0xfffffffen],
+ [0xffffffffn, 33, 0xffffffffn],
+ [0x100000000n, 33, 0x100000000n],
+ [0x100000001n, 33, 0x100000001n],
+ [0x7ffffffffffffffen, 33, 0x1fffffffen],
+ [0x7fffffffffffffffn, 33, 0x1ffffffffn],
+ [0x8000000000000000n, 33, 0n],
+ [0x8000000000000001n, 33, 1n],
+ [0xfffffffffffffffen, 33, 0x1fffffffen],
+ [0xffffffffffffffffn, 33, 0x1ffffffffn],
+ [0x10000000000000000n, 33, 0n],
+ [0x10000000000000001n, 33, 1n],
+ [-0x10000000000000001n, 63, 0x7fffffffffffffffn],
+ [-0x10000000000000000n, 63, 0n],
+ [-0xffffffffffffffffn, 63, 1n],
+ [-0xfffffffffffffffen, 63, 2n],
+ [-0x8000000000000001n, 63, 0x7fffffffffffffffn],
+ [-0x8000000000000000n, 63, 0n],
+ [-0x7fffffffffffffffn, 63, 1n],
+ [-0x7ffffffffffffffen, 63, 2n],
+ [-0x100000001n, 63, 0x7ffffffeffffffffn],
+ [-0x100000000n, 63, 0x7fffffff00000000n],
+ [-0xffffffffn, 63, 0x7fffffff00000001n],
+ [-0xfffffffen, 63, 0x7fffffff00000002n],
+ [-0x80000001n, 63, 0x7fffffff7fffffffn],
+ [-0x80000000n, 63, 0x7fffffff80000000n],
+ [-0x7fffffffn, 63, 0x7fffffff80000001n],
+ [-0x7ffffffen, 63, 0x7fffffff80000002n],
+ [-9n, 63, 0x7ffffffffffffff7n],
+ [-8n, 63, 0x7ffffffffffffff8n],
+ [-7n, 63, 0x7ffffffffffffff9n],
+ [-6n, 63, 0x7ffffffffffffffan],
+ [-5n, 63, 0x7ffffffffffffffbn],
+ [-4n, 63, 0x7ffffffffffffffcn],
+ [-3n, 63, 0x7ffffffffffffffdn],
+ [-2n, 63, 0x7ffffffffffffffen],
+ [-1n, 63, 0x7fffffffffffffffn],
+ [0n, 63, 0n],
+ [1n, 63, 1n],
+ [2n, 63, 2n],
+ [3n, 63, 3n],
+ [4n, 63, 4n],
+ [5n, 63, 5n],
+ [6n, 63, 6n],
+ [7n, 63, 7n],
+ [8n, 63, 8n],
+ [9n, 63, 9n],
+ [0x7ffffffen, 63, 0x7ffffffen],
+ [0x7fffffffn, 63, 0x7fffffffn],
+ [0x80000000n, 63, 0x80000000n],
+ [0x80000001n, 63, 0x80000001n],
+ [0xfffffffen, 63, 0xfffffffen],
+ [0xffffffffn, 63, 0xffffffffn],
+ [0x100000000n, 63, 0x100000000n],
+ [0x100000001n, 63, 0x100000001n],
+ [0x7ffffffffffffffen, 63, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 63, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 63, 0n],
+ [0x8000000000000001n, 63, 1n],
+ [0xfffffffffffffffen, 63, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, 63, 0x7fffffffffffffffn],
+ [0x10000000000000000n, 63, 0n],
+ [0x10000000000000001n, 63, 1n],
+ [-0x10000000000000001n, 64, 0xffffffffffffffffn],
+ [-0x10000000000000000n, 64, 0n],
+ [-0xffffffffffffffffn, 64, 1n],
+ [-0xfffffffffffffffen, 64, 2n],
+ [-0x8000000000000001n, 64, 0x7fffffffffffffffn],
+ [-0x8000000000000000n, 64, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, 64, 0x8000000000000001n],
+ [-0x7ffffffffffffffen, 64, 0x8000000000000002n],
+ [-0x100000001n, 64, 0xfffffffeffffffffn],
+ [-0x100000000n, 64, 0xffffffff00000000n],
+ [-0xffffffffn, 64, 0xffffffff00000001n],
+ [-0xfffffffen, 64, 0xffffffff00000002n],
+ [-0x80000001n, 64, 0xffffffff7fffffffn],
+ [-0x80000000n, 64, 0xffffffff80000000n],
+ [-0x7fffffffn, 64, 0xffffffff80000001n],
+ [-0x7ffffffen, 64, 0xffffffff80000002n],
+ [-9n, 64, 0xfffffffffffffff7n],
+ [-8n, 64, 0xfffffffffffffff8n],
+ [-7n, 64, 0xfffffffffffffff9n],
+ [-6n, 64, 0xfffffffffffffffan],
+ [-5n, 64, 0xfffffffffffffffbn],
+ [-4n, 64, 0xfffffffffffffffcn],
+ [-3n, 64, 0xfffffffffffffffdn],
+ [-2n, 64, 0xfffffffffffffffen],
+ [-1n, 64, 0xffffffffffffffffn],
+ [0n, 64, 0n],
+ [1n, 64, 1n],
+ [2n, 64, 2n],
+ [3n, 64, 3n],
+ [4n, 64, 4n],
+ [5n, 64, 5n],
+ [6n, 64, 6n],
+ [7n, 64, 7n],
+ [8n, 64, 8n],
+ [9n, 64, 9n],
+ [0x7ffffffen, 64, 0x7ffffffen],
+ [0x7fffffffn, 64, 0x7fffffffn],
+ [0x80000000n, 64, 0x80000000n],
+ [0x80000001n, 64, 0x80000001n],
+ [0xfffffffen, 64, 0xfffffffen],
+ [0xffffffffn, 64, 0xffffffffn],
+ [0x100000000n, 64, 0x100000000n],
+ [0x100000001n, 64, 0x100000001n],
+ [0x7ffffffffffffffen, 64, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 64, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 64, 0x8000000000000000n],
+ [0x8000000000000001n, 64, 0x8000000000000001n],
+ [0xfffffffffffffffen, 64, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 64, 0xffffffffffffffffn],
+ [0x10000000000000000n, 64, 0n],
+ [0x10000000000000001n, 64, 1n],
+ [-0x10000000000000001n, 65, 0xffffffffffffffffn],
+ [-0x10000000000000000n, 65, 0x10000000000000000n],
+ [-0xffffffffffffffffn, 65, 0x10000000000000001n],
+ [-0xfffffffffffffffen, 65, 0x10000000000000002n],
+ [-0x8000000000000001n, 65, 0x17fffffffffffffffn],
+ [-0x8000000000000000n, 65, 0x18000000000000000n],
+ [-0x7fffffffffffffffn, 65, 0x18000000000000001n],
+ [-0x7ffffffffffffffen, 65, 0x18000000000000002n],
+ [-0x100000001n, 65, 0x1fffffffeffffffffn],
+ [-0x100000000n, 65, 0x1ffffffff00000000n],
+ [-0xffffffffn, 65, 0x1ffffffff00000001n],
+ [-0xfffffffen, 65, 0x1ffffffff00000002n],
+ [-0x80000001n, 65, 0x1ffffffff7fffffffn],
+ [-0x80000000n, 65, 0x1ffffffff80000000n],
+ [-0x7fffffffn, 65, 0x1ffffffff80000001n],
+ [-0x7ffffffen, 65, 0x1ffffffff80000002n],
+ [-9n, 65, 0x1fffffffffffffff7n],
+ [-8n, 65, 0x1fffffffffffffff8n],
+ [-7n, 65, 0x1fffffffffffffff9n],
+ [-6n, 65, 0x1fffffffffffffffan],
+ [-5n, 65, 0x1fffffffffffffffbn],
+ [-4n, 65, 0x1fffffffffffffffcn],
+ [-3n, 65, 0x1fffffffffffffffdn],
+ [-2n, 65, 0x1fffffffffffffffen],
+ [-1n, 65, 0x1ffffffffffffffffn],
+ [0n, 65, 0n],
+ [1n, 65, 1n],
+ [2n, 65, 2n],
+ [3n, 65, 3n],
+ [4n, 65, 4n],
+ [5n, 65, 5n],
+ [6n, 65, 6n],
+ [7n, 65, 7n],
+ [8n, 65, 8n],
+ [9n, 65, 9n],
+ [0x7ffffffen, 65, 0x7ffffffen],
+ [0x7fffffffn, 65, 0x7fffffffn],
+ [0x80000000n, 65, 0x80000000n],
+ [0x80000001n, 65, 0x80000001n],
+ [0xfffffffen, 65, 0xfffffffen],
+ [0xffffffffn, 65, 0xffffffffn],
+ [0x100000000n, 65, 0x100000000n],
+ [0x100000001n, 65, 0x100000001n],
+ [0x7ffffffffffffffen, 65, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 65, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 65, 0x8000000000000000n],
+ [0x8000000000000001n, 65, 0x8000000000000001n],
+ [0xfffffffffffffffen, 65, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 65, 0xffffffffffffffffn],
+ [0x10000000000000000n, 65, 0x10000000000000000n],
+ [0x10000000000000001n, 65, 0x10000000000000001n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], bits = test[1], expected = test[2];
+
+ assertEq(BigInt.asUintN(bits, input), expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/asUintN32.js b/js/src/jit-test/tests/bigint/asUintN32.js
new file mode 100644
index 0000000000..36ea287bdd
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/asUintN32.js
@@ -0,0 +1,65 @@
+const tests = [
+ [-0x10000000000000001n, 0xffffffffn],
+ [-0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, 1n],
+ [-0xfffffffffffffffen, 2n],
+ [-0x8000000000000001n, 0xffffffffn],
+ [-0x8000000000000000n, 0n],
+ [-0x7fffffffffffffffn, 1n],
+ [-0x7ffffffffffffffen, 2n],
+ [-0x100000001n, 0xffffffffn],
+ [-0x100000000n, 0n],
+ [-0xffffffffn, 1n],
+ [-0xfffffffen, 2n],
+ [-0x80000001n, 0x7fffffffn],
+ [-0x80000000n, 0x80000000n],
+ [-0x7fffffffn, 0x80000001n],
+ [-0x7ffffffen, 0x80000002n],
+ [-9n, 0xfffffff7n],
+ [-8n, 0xfffffff8n],
+ [-7n, 0xfffffff9n],
+ [-6n, 0xfffffffan],
+ [-5n, 0xfffffffbn],
+ [-4n, 0xfffffffcn],
+ [-3n, 0xfffffffdn],
+ [-2n, 0xfffffffen],
+ [-1n, 0xffffffffn],
+ [0n, 0n],
+ [1n, 1n],
+ [2n, 2n],
+ [3n, 3n],
+ [4n, 4n],
+ [5n, 5n],
+ [6n, 6n],
+ [7n, 7n],
+ [8n, 8n],
+ [9n, 9n],
+ [0x7ffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0x7fffffffn],
+ [0x80000000n, 0x80000000n],
+ [0x80000001n, 0x80000001n],
+ [0xfffffffen, 0xfffffffen],
+ [0xffffffffn, 0xffffffffn],
+ [0x100000000n, 0n],
+ [0x100000001n, 1n],
+ [0x7ffffffffffffffen, 0xfffffffen],
+ [0x7fffffffffffffffn, 0xffffffffn],
+ [0x8000000000000000n, 0n],
+ [0x8000000000000001n, 1n],
+ [0xfffffffffffffffen, 0xfffffffen],
+ [0xffffffffffffffffn, 0xffffffffn],
+ [0x10000000000000000n, 0n],
+ [0x10000000000000001n, 1n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(BigInt.asUintN(32, input), expected);
+ }
+}
+
+for (let i = 0; i < 100; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/asUintN64.js b/js/src/jit-test/tests/bigint/asUintN64.js
new file mode 100644
index 0000000000..c0c416e9b4
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/asUintN64.js
@@ -0,0 +1,65 @@
+const tests = [
+ [-0x10000000000000001n, 0xffffffffffffffffn],
+ [-0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, 1n],
+ [-0xfffffffffffffffen, 2n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn],
+ [-0x8000000000000000n, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000001n],
+ [-0x7ffffffffffffffen, 0x8000000000000002n],
+ [-0x100000001n, 0xfffffffeffffffffn],
+ [-0x100000000n, 0xffffffff00000000n],
+ [-0xffffffffn, 0xffffffff00000001n],
+ [-0xfffffffen, 0xffffffff00000002n],
+ [-0x80000001n, 0xffffffff7fffffffn],
+ [-0x80000000n, 0xffffffff80000000n],
+ [-0x7fffffffn, 0xffffffff80000001n],
+ [-0x7ffffffen, 0xffffffff80000002n],
+ [-9n, 0xfffffffffffffff7n],
+ [-8n, 0xfffffffffffffff8n],
+ [-7n, 0xfffffffffffffff9n],
+ [-6n, 0xfffffffffffffffan],
+ [-5n, 0xfffffffffffffffbn],
+ [-4n, 0xfffffffffffffffcn],
+ [-3n, 0xfffffffffffffffdn],
+ [-2n, 0xfffffffffffffffen],
+ [-1n, 0xffffffffffffffffn],
+ [0n, 0n],
+ [1n, 1n],
+ [2n, 2n],
+ [3n, 3n],
+ [4n, 4n],
+ [5n, 5n],
+ [6n, 6n],
+ [7n, 7n],
+ [8n, 8n],
+ [9n, 9n],
+ [0x7ffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0x7fffffffn],
+ [0x80000000n, 0x80000000n],
+ [0x80000001n, 0x80000001n],
+ [0xfffffffen, 0xfffffffen],
+ [0xffffffffn, 0xffffffffn],
+ [0x100000000n, 0x100000000n],
+ [0x100000001n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x8000000000000000n],
+ [0x8000000000000001n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0n],
+ [0x10000000000000001n, 1n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(BigInt.asUintN(64, input), expected);
+ }
+}
+
+for (let i = 0; i < 100; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-add.js b/js/src/jit-test/tests/bigint/bigint-add.js
new file mode 100644
index 0000000000..1c679412dd
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-add.js
@@ -0,0 +1,718 @@
+const tests = [
+ [-0x10000000000000001n, -2n, -0x10000000000000003n],
+ [-0x10000000000000000n, -2n, -0x10000000000000002n],
+ [-0xffffffffffffffffn, -2n, -0x10000000000000001n],
+ [-0xfffffffffffffffen, -2n, -0x10000000000000000n],
+ [-0x8000000000000001n, -2n, -0x8000000000000003n],
+ [-0x8000000000000000n, -2n, -0x8000000000000002n],
+ [-0x7fffffffffffffffn, -2n, -0x8000000000000001n],
+ [-0x7ffffffffffffffen, -2n, -0x8000000000000000n],
+ [-0x100000001n, -2n, -0x100000003n],
+ [-0x100000000n, -2n, -0x100000002n],
+ [-0xffffffffn, -2n, -0x100000001n],
+ [-0xfffffffen, -2n, -0x100000000n],
+ [-0x80000001n, -2n, -0x80000003n],
+ [-0x80000000n, -2n, -0x80000002n],
+ [-0x7fffffffn, -2n, -0x80000001n],
+ [-0x7ffffffen, -2n, -0x80000000n],
+ [-2n, -2n, -4n],
+ [-1n, -2n, -3n],
+ [0n, -2n, -2n],
+ [1n, -2n, -1n],
+ [2n, -2n, 0n],
+ [0x7ffffffen, -2n, 0x7ffffffcn],
+ [0x7fffffffn, -2n, 0x7ffffffdn],
+ [0x80000000n, -2n, 0x7ffffffen],
+ [0x80000001n, -2n, 0x7fffffffn],
+ [0xfffffffen, -2n, 0xfffffffcn],
+ [0xffffffffn, -2n, 0xfffffffdn],
+ [0x100000000n, -2n, 0xfffffffen],
+ [0x100000001n, -2n, 0xffffffffn],
+ [0x7ffffffffffffffen, -2n, 0x7ffffffffffffffcn],
+ [0x7fffffffffffffffn, -2n, 0x7ffffffffffffffdn],
+ [0x8000000000000000n, -2n, 0x7ffffffffffffffen],
+ [0x8000000000000001n, -2n, 0x7fffffffffffffffn],
+ [0xfffffffffffffffen, -2n, 0xfffffffffffffffcn],
+ [0xffffffffffffffffn, -2n, 0xfffffffffffffffdn],
+ [0x10000000000000000n, -2n, 0xfffffffffffffffen],
+ [0x10000000000000001n, -2n, 0xffffffffffffffffn],
+ [-0x10000000000000001n, -1n, -0x10000000000000002n],
+ [-0x10000000000000000n, -1n, -0x10000000000000001n],
+ [-0xffffffffffffffffn, -1n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -1n, -0xffffffffffffffffn],
+ [-0x8000000000000001n, -1n, -0x8000000000000002n],
+ [-0x8000000000000000n, -1n, -0x8000000000000001n],
+ [-0x7fffffffffffffffn, -1n, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -1n, -0x7fffffffffffffffn],
+ [-0x100000001n, -1n, -0x100000002n],
+ [-0x100000000n, -1n, -0x100000001n],
+ [-0xffffffffn, -1n, -0x100000000n],
+ [-0xfffffffen, -1n, -0xffffffffn],
+ [-0x80000001n, -1n, -0x80000002n],
+ [-0x80000000n, -1n, -0x80000001n],
+ [-0x7fffffffn, -1n, -0x80000000n],
+ [-0x7ffffffen, -1n, -0x7fffffffn],
+ [-1n, -1n, -2n],
+ [0n, -1n, -1n],
+ [1n, -1n, 0n],
+ [2n, -1n, 1n],
+ [0x7ffffffen, -1n, 0x7ffffffdn],
+ [0x7fffffffn, -1n, 0x7ffffffen],
+ [0x80000000n, -1n, 0x7fffffffn],
+ [0x80000001n, -1n, 0x80000000n],
+ [0xfffffffen, -1n, 0xfffffffdn],
+ [0xffffffffn, -1n, 0xfffffffen],
+ [0x100000000n, -1n, 0xffffffffn],
+ [0x100000001n, -1n, 0x100000000n],
+ [0x7ffffffffffffffen, -1n, 0x7ffffffffffffffdn],
+ [0x7fffffffffffffffn, -1n, 0x7ffffffffffffffen],
+ [0x8000000000000000n, -1n, 0x7fffffffffffffffn],
+ [0x8000000000000001n, -1n, 0x8000000000000000n],
+ [0xfffffffffffffffen, -1n, 0xfffffffffffffffdn],
+ [0xffffffffffffffffn, -1n, 0xfffffffffffffffen],
+ [0x10000000000000000n, -1n, 0xffffffffffffffffn],
+ [0x10000000000000001n, -1n, 0x10000000000000000n],
+ [-0x10000000000000001n, 0n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0n, -0x100000001n],
+ [-0x100000000n, 0n, -0x100000000n],
+ [-0xffffffffn, 0n, -0xffffffffn],
+ [-0xfffffffen, 0n, -0xfffffffen],
+ [-0x80000001n, 0n, -0x80000001n],
+ [-0x80000000n, 0n, -0x80000000n],
+ [-0x7fffffffn, 0n, -0x7fffffffn],
+ [-0x7ffffffen, 0n, -0x7ffffffen],
+ [0n, 0n, 0n],
+ [1n, 0n, 1n],
+ [2n, 0n, 2n],
+ [0x7ffffffen, 0n, 0x7ffffffen],
+ [0x7fffffffn, 0n, 0x7fffffffn],
+ [0x80000000n, 0n, 0x80000000n],
+ [0x80000001n, 0n, 0x80000001n],
+ [0xfffffffen, 0n, 0xfffffffen],
+ [0xffffffffn, 0n, 0xffffffffn],
+ [0x100000000n, 0n, 0x100000000n],
+ [0x100000001n, 0n, 0x100000001n],
+ [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0n, 0x8000000000000000n],
+ [0x8000000000000001n, 0n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0n, 0x10000000000000000n],
+ [0x10000000000000001n, 0n, 0x10000000000000001n],
+ [-0x10000000000000001n, 1n, -0x10000000000000000n],
+ [-0x10000000000000000n, 1n, -0xffffffffffffffffn],
+ [-0xffffffffffffffffn, 1n, -0xfffffffffffffffen],
+ [-0xfffffffffffffffen, 1n, -0xfffffffffffffffdn],
+ [-0x8000000000000001n, 1n, -0x8000000000000000n],
+ [-0x8000000000000000n, 1n, -0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, 1n, -0x7ffffffffffffffen],
+ [-0x7ffffffffffffffen, 1n, -0x7ffffffffffffffdn],
+ [-0x100000001n, 1n, -0x100000000n],
+ [-0x100000000n, 1n, -0xffffffffn],
+ [-0xffffffffn, 1n, -0xfffffffen],
+ [-0xfffffffen, 1n, -0xfffffffdn],
+ [-0x80000001n, 1n, -0x80000000n],
+ [-0x80000000n, 1n, -0x7fffffffn],
+ [-0x7fffffffn, 1n, -0x7ffffffen],
+ [-0x7ffffffen, 1n, -0x7ffffffdn],
+ [1n, 1n, 2n],
+ [2n, 1n, 3n],
+ [0x7ffffffen, 1n, 0x7fffffffn],
+ [0x7fffffffn, 1n, 0x80000000n],
+ [0x80000000n, 1n, 0x80000001n],
+ [0x80000001n, 1n, 0x80000002n],
+ [0xfffffffen, 1n, 0xffffffffn],
+ [0xffffffffn, 1n, 0x100000000n],
+ [0x100000000n, 1n, 0x100000001n],
+ [0x100000001n, 1n, 0x100000002n],
+ [0x7ffffffffffffffen, 1n, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 1n, 0x8000000000000000n],
+ [0x8000000000000000n, 1n, 0x8000000000000001n],
+ [0x8000000000000001n, 1n, 0x8000000000000002n],
+ [0xfffffffffffffffen, 1n, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 1n, 0x10000000000000000n],
+ [0x10000000000000000n, 1n, 0x10000000000000001n],
+ [0x10000000000000001n, 1n, 0x10000000000000002n],
+ [-0x10000000000000001n, 2n, -0xffffffffffffffffn],
+ [-0x10000000000000000n, 2n, -0xfffffffffffffffen],
+ [-0xffffffffffffffffn, 2n, -0xfffffffffffffffdn],
+ [-0xfffffffffffffffen, 2n, -0xfffffffffffffffcn],
+ [-0x8000000000000001n, 2n, -0x7fffffffffffffffn],
+ [-0x8000000000000000n, 2n, -0x7ffffffffffffffen],
+ [-0x7fffffffffffffffn, 2n, -0x7ffffffffffffffdn],
+ [-0x7ffffffffffffffen, 2n, -0x7ffffffffffffffcn],
+ [-0x100000001n, 2n, -0xffffffffn],
+ [-0x100000000n, 2n, -0xfffffffen],
+ [-0xffffffffn, 2n, -0xfffffffdn],
+ [-0xfffffffen, 2n, -0xfffffffcn],
+ [-0x80000001n, 2n, -0x7fffffffn],
+ [-0x80000000n, 2n, -0x7ffffffen],
+ [-0x7fffffffn, 2n, -0x7ffffffdn],
+ [-0x7ffffffen, 2n, -0x7ffffffcn],
+ [2n, 2n, 4n],
+ [0x7ffffffen, 2n, 0x80000000n],
+ [0x7fffffffn, 2n, 0x80000001n],
+ [0x80000000n, 2n, 0x80000002n],
+ [0x80000001n, 2n, 0x80000003n],
+ [0xfffffffen, 2n, 0x100000000n],
+ [0xffffffffn, 2n, 0x100000001n],
+ [0x100000000n, 2n, 0x100000002n],
+ [0x100000001n, 2n, 0x100000003n],
+ [0x7ffffffffffffffen, 2n, 0x8000000000000000n],
+ [0x7fffffffffffffffn, 2n, 0x8000000000000001n],
+ [0x8000000000000000n, 2n, 0x8000000000000002n],
+ [0x8000000000000001n, 2n, 0x8000000000000003n],
+ [0xfffffffffffffffen, 2n, 0x10000000000000000n],
+ [0xffffffffffffffffn, 2n, 0x10000000000000001n],
+ [0x10000000000000000n, 2n, 0x10000000000000002n],
+ [0x10000000000000001n, 2n, 0x10000000000000003n],
+ [-0x10000000000000001n, 0x7ffffffen, -0xffffffff80000003n],
+ [-0x10000000000000000n, 0x7ffffffen, -0xffffffff80000002n],
+ [-0xffffffffffffffffn, 0x7ffffffen, -0xffffffff80000001n],
+ [-0xfffffffffffffffen, 0x7ffffffen, -0xffffffff80000000n],
+ [-0x8000000000000001n, 0x7ffffffen, -0x7fffffff80000003n],
+ [-0x8000000000000000n, 0x7ffffffen, -0x7fffffff80000002n],
+ [-0x7fffffffffffffffn, 0x7ffffffen, -0x7fffffff80000001n],
+ [-0x7ffffffffffffffen, 0x7ffffffen, -0x7fffffff80000000n],
+ [-0x100000001n, 0x7ffffffen, -0x80000003n],
+ [-0x100000000n, 0x7ffffffen, -0x80000002n],
+ [-0xffffffffn, 0x7ffffffen, -0x80000001n],
+ [-0xfffffffen, 0x7ffffffen, -0x80000000n],
+ [-0x80000001n, 0x7ffffffen, -3n],
+ [-0x80000000n, 0x7ffffffen, -2n],
+ [-0x7fffffffn, 0x7ffffffen, -1n],
+ [-0x7ffffffen, 0x7ffffffen, 0n],
+ [0x7ffffffen, 0x7ffffffen, 0xfffffffcn],
+ [0x7fffffffn, 0x7ffffffen, 0xfffffffdn],
+ [0x80000000n, 0x7ffffffen, 0xfffffffen],
+ [0x80000001n, 0x7ffffffen, 0xffffffffn],
+ [0xfffffffen, 0x7ffffffen, 0x17ffffffcn],
+ [0xffffffffn, 0x7ffffffen, 0x17ffffffdn],
+ [0x100000000n, 0x7ffffffen, 0x17ffffffen],
+ [0x100000001n, 0x7ffffffen, 0x17fffffffn],
+ [0x7ffffffffffffffen, 0x7ffffffen, 0x800000007ffffffcn],
+ [0x7fffffffffffffffn, 0x7ffffffen, 0x800000007ffffffdn],
+ [0x8000000000000000n, 0x7ffffffen, 0x800000007ffffffen],
+ [0x8000000000000001n, 0x7ffffffen, 0x800000007fffffffn],
+ [0xfffffffffffffffen, 0x7ffffffen, 0x1000000007ffffffcn],
+ [0xffffffffffffffffn, 0x7ffffffen, 0x1000000007ffffffdn],
+ [0x10000000000000000n, 0x7ffffffen, 0x1000000007ffffffen],
+ [0x10000000000000001n, 0x7ffffffen, 0x1000000007fffffffn],
+ [-0x10000000000000001n, 0x7fffffffn, -0xffffffff80000002n],
+ [-0x10000000000000000n, 0x7fffffffn, -0xffffffff80000001n],
+ [-0xffffffffffffffffn, 0x7fffffffn, -0xffffffff80000000n],
+ [-0xfffffffffffffffen, 0x7fffffffn, -0xffffffff7fffffffn],
+ [-0x8000000000000001n, 0x7fffffffn, -0x7fffffff80000002n],
+ [-0x8000000000000000n, 0x7fffffffn, -0x7fffffff80000001n],
+ [-0x7fffffffffffffffn, 0x7fffffffn, -0x7fffffff80000000n],
+ [-0x7ffffffffffffffen, 0x7fffffffn, -0x7fffffff7fffffffn],
+ [-0x100000001n, 0x7fffffffn, -0x80000002n],
+ [-0x100000000n, 0x7fffffffn, -0x80000001n],
+ [-0xffffffffn, 0x7fffffffn, -0x80000000n],
+ [-0xfffffffen, 0x7fffffffn, -0x7fffffffn],
+ [-0x80000001n, 0x7fffffffn, -2n],
+ [-0x80000000n, 0x7fffffffn, -1n],
+ [-0x7fffffffn, 0x7fffffffn, 0n],
+ [-0x7ffffffen, 0x7fffffffn, 1n],
+ [0x7fffffffn, 0x7fffffffn, 0xfffffffen],
+ [0x80000000n, 0x7fffffffn, 0xffffffffn],
+ [0x80000001n, 0x7fffffffn, 0x100000000n],
+ [0xfffffffen, 0x7fffffffn, 0x17ffffffdn],
+ [0xffffffffn, 0x7fffffffn, 0x17ffffffen],
+ [0x100000000n, 0x7fffffffn, 0x17fffffffn],
+ [0x100000001n, 0x7fffffffn, 0x180000000n],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0x800000007ffffffdn],
+ [0x7fffffffffffffffn, 0x7fffffffn, 0x800000007ffffffen],
+ [0x8000000000000000n, 0x7fffffffn, 0x800000007fffffffn],
+ [0x8000000000000001n, 0x7fffffffn, 0x8000000080000000n],
+ [0xfffffffffffffffen, 0x7fffffffn, 0x1000000007ffffffdn],
+ [0xffffffffffffffffn, 0x7fffffffn, 0x1000000007ffffffen],
+ [0x10000000000000000n, 0x7fffffffn, 0x1000000007fffffffn],
+ [0x10000000000000001n, 0x7fffffffn, 0x10000000080000000n],
+ [-0x10000000000000001n, 0x80000000n, -0xffffffff80000001n],
+ [-0x10000000000000000n, 0x80000000n, -0xffffffff80000000n],
+ [-0xffffffffffffffffn, 0x80000000n, -0xffffffff7fffffffn],
+ [-0xfffffffffffffffen, 0x80000000n, -0xffffffff7ffffffen],
+ [-0x8000000000000001n, 0x80000000n, -0x7fffffff80000001n],
+ [-0x8000000000000000n, 0x80000000n, -0x7fffffff80000000n],
+ [-0x7fffffffffffffffn, 0x80000000n, -0x7fffffff7fffffffn],
+ [-0x7ffffffffffffffen, 0x80000000n, -0x7fffffff7ffffffen],
+ [-0x100000001n, 0x80000000n, -0x80000001n],
+ [-0x100000000n, 0x80000000n, -0x80000000n],
+ [-0xffffffffn, 0x80000000n, -0x7fffffffn],
+ [-0xfffffffen, 0x80000000n, -0x7ffffffen],
+ [-0x80000001n, 0x80000000n, -1n],
+ [-0x80000000n, 0x80000000n, 0n],
+ [-0x7fffffffn, 0x80000000n, 1n],
+ [-0x7ffffffen, 0x80000000n, 2n],
+ [0x80000000n, 0x80000000n, 0x100000000n],
+ [0x80000001n, 0x80000000n, 0x100000001n],
+ [0xfffffffen, 0x80000000n, 0x17ffffffen],
+ [0xffffffffn, 0x80000000n, 0x17fffffffn],
+ [0x100000000n, 0x80000000n, 0x180000000n],
+ [0x100000001n, 0x80000000n, 0x180000001n],
+ [0x7ffffffffffffffen, 0x80000000n, 0x800000007ffffffen],
+ [0x7fffffffffffffffn, 0x80000000n, 0x800000007fffffffn],
+ [0x8000000000000000n, 0x80000000n, 0x8000000080000000n],
+ [0x8000000000000001n, 0x80000000n, 0x8000000080000001n],
+ [0xfffffffffffffffen, 0x80000000n, 0x1000000007ffffffen],
+ [0xffffffffffffffffn, 0x80000000n, 0x1000000007fffffffn],
+ [0x10000000000000000n, 0x80000000n, 0x10000000080000000n],
+ [0x10000000000000001n, 0x80000000n, 0x10000000080000001n],
+ [-0x10000000000000001n, 0x80000001n, -0xffffffff80000000n],
+ [-0x10000000000000000n, 0x80000001n, -0xffffffff7fffffffn],
+ [-0xffffffffffffffffn, 0x80000001n, -0xffffffff7ffffffen],
+ [-0xfffffffffffffffen, 0x80000001n, -0xffffffff7ffffffdn],
+ [-0x8000000000000001n, 0x80000001n, -0x7fffffff80000000n],
+ [-0x8000000000000000n, 0x80000001n, -0x7fffffff7fffffffn],
+ [-0x7fffffffffffffffn, 0x80000001n, -0x7fffffff7ffffffen],
+ [-0x7ffffffffffffffen, 0x80000001n, -0x7fffffff7ffffffdn],
+ [-0x100000001n, 0x80000001n, -0x80000000n],
+ [-0x100000000n, 0x80000001n, -0x7fffffffn],
+ [-0xffffffffn, 0x80000001n, -0x7ffffffen],
+ [-0xfffffffen, 0x80000001n, -0x7ffffffdn],
+ [-0x80000001n, 0x80000001n, 0n],
+ [-0x80000000n, 0x80000001n, 1n],
+ [-0x7fffffffn, 0x80000001n, 2n],
+ [-0x7ffffffen, 0x80000001n, 3n],
+ [0x80000001n, 0x80000001n, 0x100000002n],
+ [0xfffffffen, 0x80000001n, 0x17fffffffn],
+ [0xffffffffn, 0x80000001n, 0x180000000n],
+ [0x100000000n, 0x80000001n, 0x180000001n],
+ [0x100000001n, 0x80000001n, 0x180000002n],
+ [0x7ffffffffffffffen, 0x80000001n, 0x800000007fffffffn],
+ [0x7fffffffffffffffn, 0x80000001n, 0x8000000080000000n],
+ [0x8000000000000000n, 0x80000001n, 0x8000000080000001n],
+ [0x8000000000000001n, 0x80000001n, 0x8000000080000002n],
+ [0xfffffffffffffffen, 0x80000001n, 0x1000000007fffffffn],
+ [0xffffffffffffffffn, 0x80000001n, 0x10000000080000000n],
+ [0x10000000000000000n, 0x80000001n, 0x10000000080000001n],
+ [0x10000000000000001n, 0x80000001n, 0x10000000080000002n],
+ [-0x10000000000000001n, -0x80000001n, -0x10000000080000002n],
+ [-0x10000000000000000n, -0x80000001n, -0x10000000080000001n],
+ [-0xffffffffffffffffn, -0x80000001n, -0x10000000080000000n],
+ [-0xfffffffffffffffen, -0x80000001n, -0x1000000007fffffffn],
+ [-0x8000000000000001n, -0x80000001n, -0x8000000080000002n],
+ [-0x8000000000000000n, -0x80000001n, -0x8000000080000001n],
+ [-0x7fffffffffffffffn, -0x80000001n, -0x8000000080000000n],
+ [-0x7ffffffffffffffen, -0x80000001n, -0x800000007fffffffn],
+ [-0x100000001n, -0x80000001n, -0x180000002n],
+ [-0x100000000n, -0x80000001n, -0x180000001n],
+ [-0xffffffffn, -0x80000001n, -0x180000000n],
+ [-0xfffffffen, -0x80000001n, -0x17fffffffn],
+ [-0x80000001n, -0x80000001n, -0x100000002n],
+ [-0x80000000n, -0x80000001n, -0x100000001n],
+ [-0x7fffffffn, -0x80000001n, -0x100000000n],
+ [-0x7ffffffen, -0x80000001n, -0xffffffffn],
+ [0xfffffffen, -0x80000001n, 0x7ffffffdn],
+ [0xffffffffn, -0x80000001n, 0x7ffffffen],
+ [0x100000000n, -0x80000001n, 0x7fffffffn],
+ [0x100000001n, -0x80000001n, 0x80000000n],
+ [0x7ffffffffffffffen, -0x80000001n, 0x7fffffff7ffffffdn],
+ [0x7fffffffffffffffn, -0x80000001n, 0x7fffffff7ffffffen],
+ [0x8000000000000000n, -0x80000001n, 0x7fffffff7fffffffn],
+ [0x8000000000000001n, -0x80000001n, 0x7fffffff80000000n],
+ [0xfffffffffffffffen, -0x80000001n, 0xffffffff7ffffffdn],
+ [0xffffffffffffffffn, -0x80000001n, 0xffffffff7ffffffen],
+ [0x10000000000000000n, -0x80000001n, 0xffffffff7fffffffn],
+ [0x10000000000000001n, -0x80000001n, 0xffffffff80000000n],
+ [-0x10000000000000001n, -0x80000000n, -0x10000000080000001n],
+ [-0x10000000000000000n, -0x80000000n, -0x10000000080000000n],
+ [-0xffffffffffffffffn, -0x80000000n, -0x1000000007fffffffn],
+ [-0xfffffffffffffffen, -0x80000000n, -0x1000000007ffffffen],
+ [-0x8000000000000001n, -0x80000000n, -0x8000000080000001n],
+ [-0x8000000000000000n, -0x80000000n, -0x8000000080000000n],
+ [-0x7fffffffffffffffn, -0x80000000n, -0x800000007fffffffn],
+ [-0x7ffffffffffffffen, -0x80000000n, -0x800000007ffffffen],
+ [-0x100000001n, -0x80000000n, -0x180000001n],
+ [-0x100000000n, -0x80000000n, -0x180000000n],
+ [-0xffffffffn, -0x80000000n, -0x17fffffffn],
+ [-0xfffffffen, -0x80000000n, -0x17ffffffen],
+ [-0x80000000n, -0x80000000n, -0x100000000n],
+ [-0x7fffffffn, -0x80000000n, -0xffffffffn],
+ [-0x7ffffffen, -0x80000000n, -0xfffffffen],
+ [0xfffffffen, -0x80000000n, 0x7ffffffen],
+ [0xffffffffn, -0x80000000n, 0x7fffffffn],
+ [0x100000000n, -0x80000000n, 0x80000000n],
+ [0x100000001n, -0x80000000n, 0x80000001n],
+ [0x7ffffffffffffffen, -0x80000000n, 0x7fffffff7ffffffen],
+ [0x7fffffffffffffffn, -0x80000000n, 0x7fffffff7fffffffn],
+ [0x8000000000000000n, -0x80000000n, 0x7fffffff80000000n],
+ [0x8000000000000001n, -0x80000000n, 0x7fffffff80000001n],
+ [0xfffffffffffffffen, -0x80000000n, 0xffffffff7ffffffen],
+ [0xffffffffffffffffn, -0x80000000n, 0xffffffff7fffffffn],
+ [0x10000000000000000n, -0x80000000n, 0xffffffff80000000n],
+ [0x10000000000000001n, -0x80000000n, 0xffffffff80000001n],
+ [-0x10000000000000001n, -0x7fffffffn, -0x10000000080000000n],
+ [-0x10000000000000000n, -0x7fffffffn, -0x1000000007fffffffn],
+ [-0xffffffffffffffffn, -0x7fffffffn, -0x1000000007ffffffen],
+ [-0xfffffffffffffffen, -0x7fffffffn, -0x1000000007ffffffdn],
+ [-0x8000000000000001n, -0x7fffffffn, -0x8000000080000000n],
+ [-0x8000000000000000n, -0x7fffffffn, -0x800000007fffffffn],
+ [-0x7fffffffffffffffn, -0x7fffffffn, -0x800000007ffffffen],
+ [-0x7ffffffffffffffen, -0x7fffffffn, -0x800000007ffffffdn],
+ [-0x100000001n, -0x7fffffffn, -0x180000000n],
+ [-0x100000000n, -0x7fffffffn, -0x17fffffffn],
+ [-0xffffffffn, -0x7fffffffn, -0x17ffffffen],
+ [-0xfffffffen, -0x7fffffffn, -0x17ffffffdn],
+ [-0x7fffffffn, -0x7fffffffn, -0xfffffffen],
+ [-0x7ffffffen, -0x7fffffffn, -0xfffffffdn],
+ [0xfffffffen, -0x7fffffffn, 0x7fffffffn],
+ [0xffffffffn, -0x7fffffffn, 0x80000000n],
+ [0x100000000n, -0x7fffffffn, 0x80000001n],
+ [0x100000001n, -0x7fffffffn, 0x80000002n],
+ [0x7ffffffffffffffen, -0x7fffffffn, 0x7fffffff7fffffffn],
+ [0x7fffffffffffffffn, -0x7fffffffn, 0x7fffffff80000000n],
+ [0x8000000000000000n, -0x7fffffffn, 0x7fffffff80000001n],
+ [0x8000000000000001n, -0x7fffffffn, 0x7fffffff80000002n],
+ [0xfffffffffffffffen, -0x7fffffffn, 0xffffffff7fffffffn],
+ [0xffffffffffffffffn, -0x7fffffffn, 0xffffffff80000000n],
+ [0x10000000000000000n, -0x7fffffffn, 0xffffffff80000001n],
+ [0x10000000000000001n, -0x7fffffffn, 0xffffffff80000002n],
+ [-0x10000000000000001n, -0x7ffffffen, -0x1000000007fffffffn],
+ [-0x10000000000000000n, -0x7ffffffen, -0x1000000007ffffffen],
+ [-0xffffffffffffffffn, -0x7ffffffen, -0x1000000007ffffffdn],
+ [-0xfffffffffffffffen, -0x7ffffffen, -0x1000000007ffffffcn],
+ [-0x8000000000000001n, -0x7ffffffen, -0x800000007fffffffn],
+ [-0x8000000000000000n, -0x7ffffffen, -0x800000007ffffffen],
+ [-0x7fffffffffffffffn, -0x7ffffffen, -0x800000007ffffffdn],
+ [-0x7ffffffffffffffen, -0x7ffffffen, -0x800000007ffffffcn],
+ [-0x100000001n, -0x7ffffffen, -0x17fffffffn],
+ [-0x100000000n, -0x7ffffffen, -0x17ffffffen],
+ [-0xffffffffn, -0x7ffffffen, -0x17ffffffdn],
+ [-0xfffffffen, -0x7ffffffen, -0x17ffffffcn],
+ [-0x7ffffffen, -0x7ffffffen, -0xfffffffcn],
+ [0xfffffffen, -0x7ffffffen, 0x80000000n],
+ [0xffffffffn, -0x7ffffffen, 0x80000001n],
+ [0x100000000n, -0x7ffffffen, 0x80000002n],
+ [0x100000001n, -0x7ffffffen, 0x80000003n],
+ [0x7ffffffffffffffen, -0x7ffffffen, 0x7fffffff80000000n],
+ [0x7fffffffffffffffn, -0x7ffffffen, 0x7fffffff80000001n],
+ [0x8000000000000000n, -0x7ffffffen, 0x7fffffff80000002n],
+ [0x8000000000000001n, -0x7ffffffen, 0x7fffffff80000003n],
+ [0xfffffffffffffffen, -0x7ffffffen, 0xffffffff80000000n],
+ [0xffffffffffffffffn, -0x7ffffffen, 0xffffffff80000001n],
+ [0x10000000000000000n, -0x7ffffffen, 0xffffffff80000002n],
+ [0x10000000000000001n, -0x7ffffffen, 0xffffffff80000003n],
+ [-0x10000000000000001n, 0xfffffffen, -0xffffffff00000003n],
+ [-0x10000000000000000n, 0xfffffffen, -0xffffffff00000002n],
+ [-0xffffffffffffffffn, 0xfffffffen, -0xffffffff00000001n],
+ [-0xfffffffffffffffen, 0xfffffffen, -0xffffffff00000000n],
+ [-0x8000000000000001n, 0xfffffffen, -0x7fffffff00000003n],
+ [-0x8000000000000000n, 0xfffffffen, -0x7fffffff00000002n],
+ [-0x7fffffffffffffffn, 0xfffffffen, -0x7fffffff00000001n],
+ [-0x7ffffffffffffffen, 0xfffffffen, -0x7fffffff00000000n],
+ [-0x100000001n, 0xfffffffen, -3n],
+ [-0x100000000n, 0xfffffffen, -2n],
+ [-0xffffffffn, 0xfffffffen, -1n],
+ [-0xfffffffen, 0xfffffffen, 0n],
+ [0xfffffffen, 0xfffffffen, 0x1fffffffcn],
+ [0xffffffffn, 0xfffffffen, 0x1fffffffdn],
+ [0x100000000n, 0xfffffffen, 0x1fffffffen],
+ [0x100000001n, 0xfffffffen, 0x1ffffffffn],
+ [0x7ffffffffffffffen, 0xfffffffen, 0x80000000fffffffcn],
+ [0x7fffffffffffffffn, 0xfffffffen, 0x80000000fffffffdn],
+ [0x8000000000000000n, 0xfffffffen, 0x80000000fffffffen],
+ [0x8000000000000001n, 0xfffffffen, 0x80000000ffffffffn],
+ [0xfffffffffffffffen, 0xfffffffen, 0x100000000fffffffcn],
+ [0xffffffffffffffffn, 0xfffffffen, 0x100000000fffffffdn],
+ [0x10000000000000000n, 0xfffffffen, 0x100000000fffffffen],
+ [0x10000000000000001n, 0xfffffffen, 0x100000000ffffffffn],
+ [-0x10000000000000001n, 0xffffffffn, -0xffffffff00000002n],
+ [-0x10000000000000000n, 0xffffffffn, -0xffffffff00000001n],
+ [-0xffffffffffffffffn, 0xffffffffn, -0xffffffff00000000n],
+ [-0xfffffffffffffffen, 0xffffffffn, -0xfffffffeffffffffn],
+ [-0x8000000000000001n, 0xffffffffn, -0x7fffffff00000002n],
+ [-0x8000000000000000n, 0xffffffffn, -0x7fffffff00000001n],
+ [-0x7fffffffffffffffn, 0xffffffffn, -0x7fffffff00000000n],
+ [-0x7ffffffffffffffen, 0xffffffffn, -0x7ffffffeffffffffn],
+ [-0x100000001n, 0xffffffffn, -2n],
+ [-0x100000000n, 0xffffffffn, -1n],
+ [-0xffffffffn, 0xffffffffn, 0n],
+ [-0xfffffffen, 0xffffffffn, 1n],
+ [0xffffffffn, 0xffffffffn, 0x1fffffffen],
+ [0x100000000n, 0xffffffffn, 0x1ffffffffn],
+ [0x100000001n, 0xffffffffn, 0x200000000n],
+ [0x7ffffffffffffffen, 0xffffffffn, 0x80000000fffffffdn],
+ [0x7fffffffffffffffn, 0xffffffffn, 0x80000000fffffffen],
+ [0x8000000000000000n, 0xffffffffn, 0x80000000ffffffffn],
+ [0x8000000000000001n, 0xffffffffn, 0x8000000100000000n],
+ [0xfffffffffffffffen, 0xffffffffn, 0x100000000fffffffdn],
+ [0xffffffffffffffffn, 0xffffffffn, 0x100000000fffffffen],
+ [0x10000000000000000n, 0xffffffffn, 0x100000000ffffffffn],
+ [0x10000000000000001n, 0xffffffffn, 0x10000000100000000n],
+ [-0x10000000000000001n, 0x100000000n, -0xffffffff00000001n],
+ [-0x10000000000000000n, 0x100000000n, -0xffffffff00000000n],
+ [-0xffffffffffffffffn, 0x100000000n, -0xfffffffeffffffffn],
+ [-0xfffffffffffffffen, 0x100000000n, -0xfffffffefffffffen],
+ [-0x8000000000000001n, 0x100000000n, -0x7fffffff00000001n],
+ [-0x8000000000000000n, 0x100000000n, -0x7fffffff00000000n],
+ [-0x7fffffffffffffffn, 0x100000000n, -0x7ffffffeffffffffn],
+ [-0x7ffffffffffffffen, 0x100000000n, -0x7ffffffefffffffen],
+ [-0x100000001n, 0x100000000n, -1n],
+ [-0x100000000n, 0x100000000n, 0n],
+ [-0xffffffffn, 0x100000000n, 1n],
+ [-0xfffffffen, 0x100000000n, 2n],
+ [0x100000000n, 0x100000000n, 0x200000000n],
+ [0x100000001n, 0x100000000n, 0x200000001n],
+ [0x7ffffffffffffffen, 0x100000000n, 0x80000000fffffffen],
+ [0x7fffffffffffffffn, 0x100000000n, 0x80000000ffffffffn],
+ [0x8000000000000000n, 0x100000000n, 0x8000000100000000n],
+ [0x8000000000000001n, 0x100000000n, 0x8000000100000001n],
+ [0xfffffffffffffffen, 0x100000000n, 0x100000000fffffffen],
+ [0xffffffffffffffffn, 0x100000000n, 0x100000000ffffffffn],
+ [0x10000000000000000n, 0x100000000n, 0x10000000100000000n],
+ [0x10000000000000001n, 0x100000000n, 0x10000000100000001n],
+ [-0x10000000000000001n, 0x100000001n, -0xffffffff00000000n],
+ [-0x10000000000000000n, 0x100000001n, -0xfffffffeffffffffn],
+ [-0xffffffffffffffffn, 0x100000001n, -0xfffffffefffffffen],
+ [-0xfffffffffffffffen, 0x100000001n, -0xfffffffefffffffdn],
+ [-0x8000000000000001n, 0x100000001n, -0x7fffffff00000000n],
+ [-0x8000000000000000n, 0x100000001n, -0x7ffffffeffffffffn],
+ [-0x7fffffffffffffffn, 0x100000001n, -0x7ffffffefffffffen],
+ [-0x7ffffffffffffffen, 0x100000001n, -0x7ffffffefffffffdn],
+ [-0x100000001n, 0x100000001n, 0n],
+ [-0x100000000n, 0x100000001n, 1n],
+ [-0xffffffffn, 0x100000001n, 2n],
+ [-0xfffffffen, 0x100000001n, 3n],
+ [0x100000001n, 0x100000001n, 0x200000002n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x80000000ffffffffn],
+ [0x7fffffffffffffffn, 0x100000001n, 0x8000000100000000n],
+ [0x8000000000000000n, 0x100000001n, 0x8000000100000001n],
+ [0x8000000000000001n, 0x100000001n, 0x8000000100000002n],
+ [0xfffffffffffffffen, 0x100000001n, 0x100000000ffffffffn],
+ [0xffffffffffffffffn, 0x100000001n, 0x10000000100000000n],
+ [0x10000000000000000n, 0x100000001n, 0x10000000100000001n],
+ [0x10000000000000001n, 0x100000001n, 0x10000000100000002n],
+ [-0x10000000000000001n, -0x100000001n, -0x10000000100000002n],
+ [-0x10000000000000000n, -0x100000001n, -0x10000000100000001n],
+ [-0xffffffffffffffffn, -0x100000001n, -0x10000000100000000n],
+ [-0xfffffffffffffffen, -0x100000001n, -0x100000000ffffffffn],
+ [-0x8000000000000001n, -0x100000001n, -0x8000000100000002n],
+ [-0x8000000000000000n, -0x100000001n, -0x8000000100000001n],
+ [-0x7fffffffffffffffn, -0x100000001n, -0x8000000100000000n],
+ [-0x7ffffffffffffffen, -0x100000001n, -0x80000000ffffffffn],
+ [-0x100000001n, -0x100000001n, -0x200000002n],
+ [-0x100000000n, -0x100000001n, -0x200000001n],
+ [-0xffffffffn, -0x100000001n, -0x200000000n],
+ [-0xfffffffen, -0x100000001n, -0x1ffffffffn],
+ [0x7ffffffffffffffen, -0x100000001n, 0x7ffffffefffffffdn],
+ [0x7fffffffffffffffn, -0x100000001n, 0x7ffffffefffffffen],
+ [0x8000000000000000n, -0x100000001n, 0x7ffffffeffffffffn],
+ [0x8000000000000001n, -0x100000001n, 0x7fffffff00000000n],
+ [0xfffffffffffffffen, -0x100000001n, 0xfffffffefffffffdn],
+ [0xffffffffffffffffn, -0x100000001n, 0xfffffffefffffffen],
+ [0x10000000000000000n, -0x100000001n, 0xfffffffeffffffffn],
+ [0x10000000000000001n, -0x100000001n, 0xffffffff00000000n],
+ [-0x10000000000000001n, -0x100000000n, -0x10000000100000001n],
+ [-0x10000000000000000n, -0x100000000n, -0x10000000100000000n],
+ [-0xffffffffffffffffn, -0x100000000n, -0x100000000ffffffffn],
+ [-0xfffffffffffffffen, -0x100000000n, -0x100000000fffffffen],
+ [-0x8000000000000001n, -0x100000000n, -0x8000000100000001n],
+ [-0x8000000000000000n, -0x100000000n, -0x8000000100000000n],
+ [-0x7fffffffffffffffn, -0x100000000n, -0x80000000ffffffffn],
+ [-0x7ffffffffffffffen, -0x100000000n, -0x80000000fffffffen],
+ [-0x100000000n, -0x100000000n, -0x200000000n],
+ [-0xffffffffn, -0x100000000n, -0x1ffffffffn],
+ [-0xfffffffen, -0x100000000n, -0x1fffffffen],
+ [0x7ffffffffffffffen, -0x100000000n, 0x7ffffffefffffffen],
+ [0x7fffffffffffffffn, -0x100000000n, 0x7ffffffeffffffffn],
+ [0x8000000000000000n, -0x100000000n, 0x7fffffff00000000n],
+ [0x8000000000000001n, -0x100000000n, 0x7fffffff00000001n],
+ [0xfffffffffffffffen, -0x100000000n, 0xfffffffefffffffen],
+ [0xffffffffffffffffn, -0x100000000n, 0xfffffffeffffffffn],
+ [0x10000000000000000n, -0x100000000n, 0xffffffff00000000n],
+ [0x10000000000000001n, -0x100000000n, 0xffffffff00000001n],
+ [-0x10000000000000001n, -0xffffffffn, -0x10000000100000000n],
+ [-0x10000000000000000n, -0xffffffffn, -0x100000000ffffffffn],
+ [-0xffffffffffffffffn, -0xffffffffn, -0x100000000fffffffen],
+ [-0xfffffffffffffffen, -0xffffffffn, -0x100000000fffffffdn],
+ [-0x8000000000000001n, -0xffffffffn, -0x8000000100000000n],
+ [-0x8000000000000000n, -0xffffffffn, -0x80000000ffffffffn],
+ [-0x7fffffffffffffffn, -0xffffffffn, -0x80000000fffffffen],
+ [-0x7ffffffffffffffen, -0xffffffffn, -0x80000000fffffffdn],
+ [-0xffffffffn, -0xffffffffn, -0x1fffffffen],
+ [-0xfffffffen, -0xffffffffn, -0x1fffffffdn],
+ [0x7ffffffffffffffen, -0xffffffffn, 0x7ffffffeffffffffn],
+ [0x7fffffffffffffffn, -0xffffffffn, 0x7fffffff00000000n],
+ [0x8000000000000000n, -0xffffffffn, 0x7fffffff00000001n],
+ [0x8000000000000001n, -0xffffffffn, 0x7fffffff00000002n],
+ [0xfffffffffffffffen, -0xffffffffn, 0xfffffffeffffffffn],
+ [0xffffffffffffffffn, -0xffffffffn, 0xffffffff00000000n],
+ [0x10000000000000000n, -0xffffffffn, 0xffffffff00000001n],
+ [0x10000000000000001n, -0xffffffffn, 0xffffffff00000002n],
+ [-0x10000000000000001n, -0xfffffffen, -0x100000000ffffffffn],
+ [-0x10000000000000000n, -0xfffffffen, -0x100000000fffffffen],
+ [-0xffffffffffffffffn, -0xfffffffen, -0x100000000fffffffdn],
+ [-0xfffffffffffffffen, -0xfffffffen, -0x100000000fffffffcn],
+ [-0x8000000000000001n, -0xfffffffen, -0x80000000ffffffffn],
+ [-0x8000000000000000n, -0xfffffffen, -0x80000000fffffffen],
+ [-0x7fffffffffffffffn, -0xfffffffen, -0x80000000fffffffdn],
+ [-0x7ffffffffffffffen, -0xfffffffen, -0x80000000fffffffcn],
+ [-0xfffffffen, -0xfffffffen, -0x1fffffffcn],
+ [0x7ffffffffffffffen, -0xfffffffen, 0x7fffffff00000000n],
+ [0x7fffffffffffffffn, -0xfffffffen, 0x7fffffff00000001n],
+ [0x8000000000000000n, -0xfffffffen, 0x7fffffff00000002n],
+ [0x8000000000000001n, -0xfffffffen, 0x7fffffff00000003n],
+ [0xfffffffffffffffen, -0xfffffffen, 0xffffffff00000000n],
+ [0xffffffffffffffffn, -0xfffffffen, 0xffffffff00000001n],
+ [0x10000000000000000n, -0xfffffffen, 0xffffffff00000002n],
+ [0x10000000000000001n, -0xfffffffen, 0xffffffff00000003n],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, -0x8000000000000003n],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, -0x8000000000000002n],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, -0x8000000000000001n],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, -0x8000000000000000n],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, -3n],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, -2n],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, -1n],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, 0n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0xfffffffffffffffcn],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 0xfffffffffffffffdn],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 0xfffffffffffffffen],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 0xffffffffffffffffn],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 0x17ffffffffffffffcn],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 0x17ffffffffffffffdn],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 0x17ffffffffffffffen],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 0x17fffffffffffffffn],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, -0x8000000000000002n],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, -0x8000000000000001n],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, -0x8000000000000000n],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, -2n],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, -1n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, 0n],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, 1n],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0xfffffffffffffffen],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 0xffffffffffffffffn],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 0x10000000000000000n],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 0x17ffffffffffffffdn],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 0x17ffffffffffffffen],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 0x17fffffffffffffffn],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 0x18000000000000000n],
+ [-0x10000000000000001n, 0x8000000000000000n, -0x8000000000000001n],
+ [-0x10000000000000000n, 0x8000000000000000n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, 0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x8000000000000001n, 0x8000000000000000n, -1n],
+ [-0x8000000000000000n, 0x8000000000000000n, 0n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, 1n],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, 2n],
+ [0x8000000000000000n, 0x8000000000000000n, 0x10000000000000000n],
+ [0x8000000000000001n, 0x8000000000000000n, 0x10000000000000001n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 0x17ffffffffffffffen],
+ [0xffffffffffffffffn, 0x8000000000000000n, 0x17fffffffffffffffn],
+ [0x10000000000000000n, 0x8000000000000000n, 0x18000000000000000n],
+ [0x10000000000000001n, 0x8000000000000000n, 0x18000000000000001n],
+ [-0x10000000000000001n, 0x8000000000000001n, -0x8000000000000000n],
+ [-0x10000000000000000n, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, 0x8000000000000001n, -0x7ffffffffffffffen],
+ [-0xfffffffffffffffen, 0x8000000000000001n, -0x7ffffffffffffffdn],
+ [-0x8000000000000001n, 0x8000000000000001n, 0n],
+ [-0x8000000000000000n, 0x8000000000000001n, 1n],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, 2n],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, 3n],
+ [0x8000000000000001n, 0x8000000000000001n, 0x10000000000000002n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 0x17fffffffffffffffn],
+ [0xffffffffffffffffn, 0x8000000000000001n, 0x18000000000000000n],
+ [0x10000000000000000n, 0x8000000000000001n, 0x18000000000000001n],
+ [0x10000000000000001n, 0x8000000000000001n, 0x18000000000000002n],
+ [-0x10000000000000001n, -0x8000000000000001n, -0x18000000000000002n],
+ [-0x10000000000000000n, -0x8000000000000001n, -0x18000000000000001n],
+ [-0xffffffffffffffffn, -0x8000000000000001n, -0x18000000000000000n],
+ [-0xfffffffffffffffen, -0x8000000000000001n, -0x17fffffffffffffffn],
+ [-0x8000000000000001n, -0x8000000000000001n, -0x10000000000000002n],
+ [-0x8000000000000000n, -0x8000000000000001n, -0x10000000000000001n],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, -0x10000000000000000n],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, -0xffffffffffffffffn],
+ [0xfffffffffffffffen, -0x8000000000000001n, 0x7ffffffffffffffdn],
+ [0xffffffffffffffffn, -0x8000000000000001n, 0x7ffffffffffffffen],
+ [0x10000000000000000n, -0x8000000000000001n, 0x7fffffffffffffffn],
+ [0x10000000000000001n, -0x8000000000000001n, 0x8000000000000000n],
+ [-0x10000000000000001n, -0x8000000000000000n, -0x18000000000000001n],
+ [-0x10000000000000000n, -0x8000000000000000n, -0x18000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, -0x17fffffffffffffffn],
+ [-0xfffffffffffffffen, -0x8000000000000000n, -0x17ffffffffffffffen],
+ [-0x8000000000000000n, -0x8000000000000000n, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, -0xffffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, -0xfffffffffffffffen],
+ [0xfffffffffffffffen, -0x8000000000000000n, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, -0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, -0x8000000000000000n, 0x8000000000000000n],
+ [0x10000000000000001n, -0x8000000000000000n, 0x8000000000000001n],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, -0x18000000000000000n],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, -0x17fffffffffffffffn],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, -0x17ffffffffffffffen],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, -0x17ffffffffffffffdn],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, -0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, -0xfffffffffffffffdn],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, 0x8000000000000000n],
+ [0x10000000000000000n, -0x7fffffffffffffffn, 0x8000000000000001n],
+ [0x10000000000000001n, -0x7fffffffffffffffn, 0x8000000000000002n],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, -0x17fffffffffffffffn],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, -0x17ffffffffffffffen],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, -0x17ffffffffffffffdn],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, -0x17ffffffffffffffcn],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, -0xfffffffffffffffcn],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, 0x8000000000000000n],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, 0x8000000000000001n],
+ [0x10000000000000000n, -0x7ffffffffffffffen, 0x8000000000000002n],
+ [0x10000000000000001n, -0x7ffffffffffffffen, 0x8000000000000003n],
+ [-0x10000000000000001n, 0xfffffffffffffffen, -3n],
+ [-0x10000000000000000n, 0xfffffffffffffffen, -2n],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, -1n],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, 0n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 0x1fffffffffffffffcn],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 0x1fffffffffffffffdn],
+ [0x10000000000000000n, 0xfffffffffffffffen, 0x1fffffffffffffffen],
+ [0x10000000000000001n, 0xfffffffffffffffen, 0x1ffffffffffffffffn],
+ [-0x10000000000000001n, 0xffffffffffffffffn, -2n],
+ [-0x10000000000000000n, 0xffffffffffffffffn, -1n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, 0n],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, 1n],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 0x1fffffffffffffffen],
+ [0x10000000000000000n, 0xffffffffffffffffn, 0x1ffffffffffffffffn],
+ [0x10000000000000001n, 0xffffffffffffffffn, 0x20000000000000000n],
+ [-0x10000000000000001n, 0x10000000000000000n, -1n],
+ [-0x10000000000000000n, 0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, 1n],
+ [-0xfffffffffffffffen, 0x10000000000000000n, 2n],
+ [0x10000000000000000n, 0x10000000000000000n, 0x20000000000000000n],
+ [0x10000000000000001n, 0x10000000000000000n, 0x20000000000000001n],
+ [-0x10000000000000001n, 0x10000000000000001n, 0n],
+ [-0x10000000000000000n, 0x10000000000000001n, 1n],
+ [-0xffffffffffffffffn, 0x10000000000000001n, 2n],
+ [-0xfffffffffffffffen, 0x10000000000000001n, 3n],
+ [0x10000000000000001n, 0x10000000000000001n, 0x20000000000000002n],
+ [-0x10000000000000001n, -0x10000000000000001n, -0x20000000000000002n],
+ [-0x10000000000000000n, -0x10000000000000001n, -0x20000000000000001n],
+ [-0xffffffffffffffffn, -0x10000000000000001n, -0x20000000000000000n],
+ [-0xfffffffffffffffen, -0x10000000000000001n, -0x1ffffffffffffffffn],
+ [-0x10000000000000000n, -0x10000000000000000n, -0x20000000000000000n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, -0x1ffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x10000000000000000n, -0x1fffffffffffffffen],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, -0x1fffffffffffffffen],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, -0x1fffffffffffffffdn],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, -0x1fffffffffffffffcn],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs + rhs, expected);
+ assertEq(rhs + lhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-and.js b/js/src/jit-test/tests/bigint/bigint-and.js
new file mode 100644
index 0000000000..eb79f5e8c6
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-and.js
@@ -0,0 +1,718 @@
+const tests = [
+ [-0x10000000000000001n, -2n, -0x10000000000000002n],
+ [-0x10000000000000000n, -2n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -2n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -2n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -2n, -0x8000000000000002n],
+ [-0x8000000000000000n, -2n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -2n, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -2n, -0x7ffffffffffffffen],
+ [-0x100000001n, -2n, -0x100000002n],
+ [-0x100000000n, -2n, -0x100000000n],
+ [-0xffffffffn, -2n, -0x100000000n],
+ [-0xfffffffen, -2n, -0xfffffffen],
+ [-0x80000001n, -2n, -0x80000002n],
+ [-0x80000000n, -2n, -0x80000000n],
+ [-0x7fffffffn, -2n, -0x80000000n],
+ [-0x7ffffffen, -2n, -0x7ffffffen],
+ [-2n, -2n, -2n],
+ [-1n, -2n, -2n],
+ [0n, -2n, 0n],
+ [1n, -2n, 0n],
+ [2n, -2n, 2n],
+ [0x7ffffffen, -2n, 0x7ffffffen],
+ [0x7fffffffn, -2n, 0x7ffffffen],
+ [0x80000000n, -2n, 0x80000000n],
+ [0x80000001n, -2n, 0x80000000n],
+ [0xfffffffen, -2n, 0xfffffffen],
+ [0xffffffffn, -2n, 0xfffffffen],
+ [0x100000000n, -2n, 0x100000000n],
+ [0x100000001n, -2n, 0x100000000n],
+ [0x7ffffffffffffffen, -2n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -2n, 0x7ffffffffffffffen],
+ [0x8000000000000000n, -2n, 0x8000000000000000n],
+ [0x8000000000000001n, -2n, 0x8000000000000000n],
+ [0xfffffffffffffffen, -2n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, -2n, 0xfffffffffffffffen],
+ [0x10000000000000000n, -2n, 0x10000000000000000n],
+ [0x10000000000000001n, -2n, 0x10000000000000000n],
+ [-0x10000000000000001n, -1n, -0x10000000000000001n],
+ [-0x10000000000000000n, -1n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -1n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -1n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -1n, -0x8000000000000001n],
+ [-0x8000000000000000n, -1n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -1n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -1n, -0x7ffffffffffffffen],
+ [-0x100000001n, -1n, -0x100000001n],
+ [-0x100000000n, -1n, -0x100000000n],
+ [-0xffffffffn, -1n, -0xffffffffn],
+ [-0xfffffffen, -1n, -0xfffffffen],
+ [-0x80000001n, -1n, -0x80000001n],
+ [-0x80000000n, -1n, -0x80000000n],
+ [-0x7fffffffn, -1n, -0x7fffffffn],
+ [-0x7ffffffen, -1n, -0x7ffffffen],
+ [-1n, -1n, -1n],
+ [0n, -1n, 0n],
+ [1n, -1n, 1n],
+ [2n, -1n, 2n],
+ [0x7ffffffen, -1n, 0x7ffffffen],
+ [0x7fffffffn, -1n, 0x7fffffffn],
+ [0x80000000n, -1n, 0x80000000n],
+ [0x80000001n, -1n, 0x80000001n],
+ [0xfffffffen, -1n, 0xfffffffen],
+ [0xffffffffn, -1n, 0xffffffffn],
+ [0x100000000n, -1n, 0x100000000n],
+ [0x100000001n, -1n, 0x100000001n],
+ [0x7ffffffffffffffen, -1n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -1n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -1n, 0x8000000000000000n],
+ [0x8000000000000001n, -1n, 0x8000000000000001n],
+ [0xfffffffffffffffen, -1n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, -1n, 0xffffffffffffffffn],
+ [0x10000000000000000n, -1n, 0x10000000000000000n],
+ [0x10000000000000001n, -1n, 0x10000000000000001n],
+ [-0x10000000000000001n, 0n, 0n],
+ [-0x10000000000000000n, 0n, 0n],
+ [-0xffffffffffffffffn, 0n, 0n],
+ [-0xfffffffffffffffen, 0n, 0n],
+ [-0x8000000000000001n, 0n, 0n],
+ [-0x8000000000000000n, 0n, 0n],
+ [-0x7fffffffffffffffn, 0n, 0n],
+ [-0x7ffffffffffffffen, 0n, 0n],
+ [-0x100000001n, 0n, 0n],
+ [-0x100000000n, 0n, 0n],
+ [-0xffffffffn, 0n, 0n],
+ [-0xfffffffen, 0n, 0n],
+ [-0x80000001n, 0n, 0n],
+ [-0x80000000n, 0n, 0n],
+ [-0x7fffffffn, 0n, 0n],
+ [-0x7ffffffen, 0n, 0n],
+ [0n, 0n, 0n],
+ [1n, 0n, 0n],
+ [2n, 0n, 0n],
+ [0x7ffffffen, 0n, 0n],
+ [0x7fffffffn, 0n, 0n],
+ [0x80000000n, 0n, 0n],
+ [0x80000001n, 0n, 0n],
+ [0xfffffffen, 0n, 0n],
+ [0xffffffffn, 0n, 0n],
+ [0x100000000n, 0n, 0n],
+ [0x100000001n, 0n, 0n],
+ [0x7ffffffffffffffen, 0n, 0n],
+ [0x7fffffffffffffffn, 0n, 0n],
+ [0x8000000000000000n, 0n, 0n],
+ [0x8000000000000001n, 0n, 0n],
+ [0xfffffffffffffffen, 0n, 0n],
+ [0xffffffffffffffffn, 0n, 0n],
+ [0x10000000000000000n, 0n, 0n],
+ [0x10000000000000001n, 0n, 0n],
+ [-0x10000000000000001n, 1n, 1n],
+ [-0x10000000000000000n, 1n, 0n],
+ [-0xffffffffffffffffn, 1n, 1n],
+ [-0xfffffffffffffffen, 1n, 0n],
+ [-0x8000000000000001n, 1n, 1n],
+ [-0x8000000000000000n, 1n, 0n],
+ [-0x7fffffffffffffffn, 1n, 1n],
+ [-0x7ffffffffffffffen, 1n, 0n],
+ [-0x100000001n, 1n, 1n],
+ [-0x100000000n, 1n, 0n],
+ [-0xffffffffn, 1n, 1n],
+ [-0xfffffffen, 1n, 0n],
+ [-0x80000001n, 1n, 1n],
+ [-0x80000000n, 1n, 0n],
+ [-0x7fffffffn, 1n, 1n],
+ [-0x7ffffffen, 1n, 0n],
+ [1n, 1n, 1n],
+ [2n, 1n, 0n],
+ [0x7ffffffen, 1n, 0n],
+ [0x7fffffffn, 1n, 1n],
+ [0x80000000n, 1n, 0n],
+ [0x80000001n, 1n, 1n],
+ [0xfffffffen, 1n, 0n],
+ [0xffffffffn, 1n, 1n],
+ [0x100000000n, 1n, 0n],
+ [0x100000001n, 1n, 1n],
+ [0x7ffffffffffffffen, 1n, 0n],
+ [0x7fffffffffffffffn, 1n, 1n],
+ [0x8000000000000000n, 1n, 0n],
+ [0x8000000000000001n, 1n, 1n],
+ [0xfffffffffffffffen, 1n, 0n],
+ [0xffffffffffffffffn, 1n, 1n],
+ [0x10000000000000000n, 1n, 0n],
+ [0x10000000000000001n, 1n, 1n],
+ [-0x10000000000000001n, 2n, 2n],
+ [-0x10000000000000000n, 2n, 0n],
+ [-0xffffffffffffffffn, 2n, 0n],
+ [-0xfffffffffffffffen, 2n, 2n],
+ [-0x8000000000000001n, 2n, 2n],
+ [-0x8000000000000000n, 2n, 0n],
+ [-0x7fffffffffffffffn, 2n, 0n],
+ [-0x7ffffffffffffffen, 2n, 2n],
+ [-0x100000001n, 2n, 2n],
+ [-0x100000000n, 2n, 0n],
+ [-0xffffffffn, 2n, 0n],
+ [-0xfffffffen, 2n, 2n],
+ [-0x80000001n, 2n, 2n],
+ [-0x80000000n, 2n, 0n],
+ [-0x7fffffffn, 2n, 0n],
+ [-0x7ffffffen, 2n, 2n],
+ [2n, 2n, 2n],
+ [0x7ffffffen, 2n, 2n],
+ [0x7fffffffn, 2n, 2n],
+ [0x80000000n, 2n, 0n],
+ [0x80000001n, 2n, 0n],
+ [0xfffffffen, 2n, 2n],
+ [0xffffffffn, 2n, 2n],
+ [0x100000000n, 2n, 0n],
+ [0x100000001n, 2n, 0n],
+ [0x7ffffffffffffffen, 2n, 2n],
+ [0x7fffffffffffffffn, 2n, 2n],
+ [0x8000000000000000n, 2n, 0n],
+ [0x8000000000000001n, 2n, 0n],
+ [0xfffffffffffffffen, 2n, 2n],
+ [0xffffffffffffffffn, 2n, 2n],
+ [0x10000000000000000n, 2n, 0n],
+ [0x10000000000000001n, 2n, 0n],
+ [-0x10000000000000001n, 0x7ffffffen, 0x7ffffffen],
+ [-0x10000000000000000n, 0x7ffffffen, 0n],
+ [-0xffffffffffffffffn, 0x7ffffffen, 0n],
+ [-0xfffffffffffffffen, 0x7ffffffen, 2n],
+ [-0x8000000000000001n, 0x7ffffffen, 0x7ffffffen],
+ [-0x8000000000000000n, 0x7ffffffen, 0n],
+ [-0x7fffffffffffffffn, 0x7ffffffen, 0n],
+ [-0x7ffffffffffffffen, 0x7ffffffen, 2n],
+ [-0x100000001n, 0x7ffffffen, 0x7ffffffen],
+ [-0x100000000n, 0x7ffffffen, 0n],
+ [-0xffffffffn, 0x7ffffffen, 0n],
+ [-0xfffffffen, 0x7ffffffen, 2n],
+ [-0x80000001n, 0x7ffffffen, 0x7ffffffen],
+ [-0x80000000n, 0x7ffffffen, 0n],
+ [-0x7fffffffn, 0x7ffffffen, 0n],
+ [-0x7ffffffen, 0x7ffffffen, 2n],
+ [0x7ffffffen, 0x7ffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0x7ffffffen, 0x7ffffffen],
+ [0x80000000n, 0x7ffffffen, 0n],
+ [0x80000001n, 0x7ffffffen, 0n],
+ [0xfffffffen, 0x7ffffffen, 0x7ffffffen],
+ [0xffffffffn, 0x7ffffffen, 0x7ffffffen],
+ [0x100000000n, 0x7ffffffen, 0n],
+ [0x100000001n, 0x7ffffffen, 0n],
+ [0x7ffffffffffffffen, 0x7ffffffen, 0x7ffffffen],
+ [0x7fffffffffffffffn, 0x7ffffffen, 0x7ffffffen],
+ [0x8000000000000000n, 0x7ffffffen, 0n],
+ [0x8000000000000001n, 0x7ffffffen, 0n],
+ [0xfffffffffffffffen, 0x7ffffffen, 0x7ffffffen],
+ [0xffffffffffffffffn, 0x7ffffffen, 0x7ffffffen],
+ [0x10000000000000000n, 0x7ffffffen, 0n],
+ [0x10000000000000001n, 0x7ffffffen, 0n],
+ [-0x10000000000000001n, 0x7fffffffn, 0x7fffffffn],
+ [-0x10000000000000000n, 0x7fffffffn, 0n],
+ [-0xffffffffffffffffn, 0x7fffffffn, 1n],
+ [-0xfffffffffffffffen, 0x7fffffffn, 2n],
+ [-0x8000000000000001n, 0x7fffffffn, 0x7fffffffn],
+ [-0x8000000000000000n, 0x7fffffffn, 0n],
+ [-0x7fffffffffffffffn, 0x7fffffffn, 1n],
+ [-0x7ffffffffffffffen, 0x7fffffffn, 2n],
+ [-0x100000001n, 0x7fffffffn, 0x7fffffffn],
+ [-0x100000000n, 0x7fffffffn, 0n],
+ [-0xffffffffn, 0x7fffffffn, 1n],
+ [-0xfffffffen, 0x7fffffffn, 2n],
+ [-0x80000001n, 0x7fffffffn, 0x7fffffffn],
+ [-0x80000000n, 0x7fffffffn, 0n],
+ [-0x7fffffffn, 0x7fffffffn, 1n],
+ [-0x7ffffffen, 0x7fffffffn, 2n],
+ [0x7fffffffn, 0x7fffffffn, 0x7fffffffn],
+ [0x80000000n, 0x7fffffffn, 0n],
+ [0x80000001n, 0x7fffffffn, 1n],
+ [0xfffffffen, 0x7fffffffn, 0x7ffffffen],
+ [0xffffffffn, 0x7fffffffn, 0x7fffffffn],
+ [0x100000000n, 0x7fffffffn, 0n],
+ [0x100000001n, 0x7fffffffn, 1n],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0x7ffffffen],
+ [0x7fffffffffffffffn, 0x7fffffffn, 0x7fffffffn],
+ [0x8000000000000000n, 0x7fffffffn, 0n],
+ [0x8000000000000001n, 0x7fffffffn, 1n],
+ [0xfffffffffffffffen, 0x7fffffffn, 0x7ffffffen],
+ [0xffffffffffffffffn, 0x7fffffffn, 0x7fffffffn],
+ [0x10000000000000000n, 0x7fffffffn, 0n],
+ [0x10000000000000001n, 0x7fffffffn, 1n],
+ [-0x10000000000000001n, 0x80000000n, 0x80000000n],
+ [-0x10000000000000000n, 0x80000000n, 0n],
+ [-0xffffffffffffffffn, 0x80000000n, 0n],
+ [-0xfffffffffffffffen, 0x80000000n, 0n],
+ [-0x8000000000000001n, 0x80000000n, 0x80000000n],
+ [-0x8000000000000000n, 0x80000000n, 0n],
+ [-0x7fffffffffffffffn, 0x80000000n, 0n],
+ [-0x7ffffffffffffffen, 0x80000000n, 0n],
+ [-0x100000001n, 0x80000000n, 0x80000000n],
+ [-0x100000000n, 0x80000000n, 0n],
+ [-0xffffffffn, 0x80000000n, 0n],
+ [-0xfffffffen, 0x80000000n, 0n],
+ [-0x80000001n, 0x80000000n, 0n],
+ [-0x80000000n, 0x80000000n, 0x80000000n],
+ [-0x7fffffffn, 0x80000000n, 0x80000000n],
+ [-0x7ffffffen, 0x80000000n, 0x80000000n],
+ [0x80000000n, 0x80000000n, 0x80000000n],
+ [0x80000001n, 0x80000000n, 0x80000000n],
+ [0xfffffffen, 0x80000000n, 0x80000000n],
+ [0xffffffffn, 0x80000000n, 0x80000000n],
+ [0x100000000n, 0x80000000n, 0n],
+ [0x100000001n, 0x80000000n, 0n],
+ [0x7ffffffffffffffen, 0x80000000n, 0x80000000n],
+ [0x7fffffffffffffffn, 0x80000000n, 0x80000000n],
+ [0x8000000000000000n, 0x80000000n, 0n],
+ [0x8000000000000001n, 0x80000000n, 0n],
+ [0xfffffffffffffffen, 0x80000000n, 0x80000000n],
+ [0xffffffffffffffffn, 0x80000000n, 0x80000000n],
+ [0x10000000000000000n, 0x80000000n, 0n],
+ [0x10000000000000001n, 0x80000000n, 0n],
+ [-0x10000000000000001n, 0x80000001n, 0x80000001n],
+ [-0x10000000000000000n, 0x80000001n, 0n],
+ [-0xffffffffffffffffn, 0x80000001n, 1n],
+ [-0xfffffffffffffffen, 0x80000001n, 0n],
+ [-0x8000000000000001n, 0x80000001n, 0x80000001n],
+ [-0x8000000000000000n, 0x80000001n, 0n],
+ [-0x7fffffffffffffffn, 0x80000001n, 1n],
+ [-0x7ffffffffffffffen, 0x80000001n, 0n],
+ [-0x100000001n, 0x80000001n, 0x80000001n],
+ [-0x100000000n, 0x80000001n, 0n],
+ [-0xffffffffn, 0x80000001n, 1n],
+ [-0xfffffffen, 0x80000001n, 0n],
+ [-0x80000001n, 0x80000001n, 1n],
+ [-0x80000000n, 0x80000001n, 0x80000000n],
+ [-0x7fffffffn, 0x80000001n, 0x80000001n],
+ [-0x7ffffffen, 0x80000001n, 0x80000000n],
+ [0x80000001n, 0x80000001n, 0x80000001n],
+ [0xfffffffen, 0x80000001n, 0x80000000n],
+ [0xffffffffn, 0x80000001n, 0x80000001n],
+ [0x100000000n, 0x80000001n, 0n],
+ [0x100000001n, 0x80000001n, 1n],
+ [0x7ffffffffffffffen, 0x80000001n, 0x80000000n],
+ [0x7fffffffffffffffn, 0x80000001n, 0x80000001n],
+ [0x8000000000000000n, 0x80000001n, 0n],
+ [0x8000000000000001n, 0x80000001n, 1n],
+ [0xfffffffffffffffen, 0x80000001n, 0x80000000n],
+ [0xffffffffffffffffn, 0x80000001n, 0x80000001n],
+ [0x10000000000000000n, 0x80000001n, 0n],
+ [0x10000000000000001n, 0x80000001n, 1n],
+ [-0x10000000000000001n, -0x80000001n, -0x10000000080000001n],
+ [-0x10000000000000000n, -0x80000001n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x80000001n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x80000001n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0x80000001n, -0x8000000080000001n],
+ [-0x8000000000000000n, -0x80000001n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x80000001n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x80000001n, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x80000001n, -0x180000001n],
+ [-0x100000000n, -0x80000001n, -0x100000000n],
+ [-0xffffffffn, -0x80000001n, -0xffffffffn],
+ [-0xfffffffen, -0x80000001n, -0xfffffffen],
+ [-0x80000001n, -0x80000001n, -0x80000001n],
+ [-0x80000000n, -0x80000001n, -0x100000000n],
+ [-0x7fffffffn, -0x80000001n, -0xffffffffn],
+ [-0x7ffffffen, -0x80000001n, -0xfffffffen],
+ [0xfffffffen, -0x80000001n, 0x7ffffffen],
+ [0xffffffffn, -0x80000001n, 0x7fffffffn],
+ [0x100000000n, -0x80000001n, 0x100000000n],
+ [0x100000001n, -0x80000001n, 0x100000001n],
+ [0x7ffffffffffffffen, -0x80000001n, 0x7fffffff7ffffffen],
+ [0x7fffffffffffffffn, -0x80000001n, 0x7fffffff7fffffffn],
+ [0x8000000000000000n, -0x80000001n, 0x8000000000000000n],
+ [0x8000000000000001n, -0x80000001n, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0x80000001n, 0xffffffff7ffffffen],
+ [0xffffffffffffffffn, -0x80000001n, 0xffffffff7fffffffn],
+ [0x10000000000000000n, -0x80000001n, 0x10000000000000000n],
+ [0x10000000000000001n, -0x80000001n, 0x10000000000000001n],
+ [-0x10000000000000001n, -0x80000000n, -0x10000000080000000n],
+ [-0x10000000000000000n, -0x80000000n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x80000000n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0x80000000n, -0x10000000000000000n],
+ [-0x8000000000000001n, -0x80000000n, -0x8000000080000000n],
+ [-0x8000000000000000n, -0x80000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x80000000n, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0x80000000n, -0x8000000000000000n],
+ [-0x100000001n, -0x80000000n, -0x180000000n],
+ [-0x100000000n, -0x80000000n, -0x100000000n],
+ [-0xffffffffn, -0x80000000n, -0x100000000n],
+ [-0xfffffffen, -0x80000000n, -0x100000000n],
+ [-0x80000000n, -0x80000000n, -0x80000000n],
+ [-0x7fffffffn, -0x80000000n, -0x80000000n],
+ [-0x7ffffffen, -0x80000000n, -0x80000000n],
+ [0xfffffffen, -0x80000000n, 0x80000000n],
+ [0xffffffffn, -0x80000000n, 0x80000000n],
+ [0x100000000n, -0x80000000n, 0x100000000n],
+ [0x100000001n, -0x80000000n, 0x100000000n],
+ [0x7ffffffffffffffen, -0x80000000n, 0x7fffffff80000000n],
+ [0x7fffffffffffffffn, -0x80000000n, 0x7fffffff80000000n],
+ [0x8000000000000000n, -0x80000000n, 0x8000000000000000n],
+ [0x8000000000000001n, -0x80000000n, 0x8000000000000000n],
+ [0xfffffffffffffffen, -0x80000000n, 0xffffffff80000000n],
+ [0xffffffffffffffffn, -0x80000000n, 0xffffffff80000000n],
+ [0x10000000000000000n, -0x80000000n, 0x10000000000000000n],
+ [0x10000000000000001n, -0x80000000n, 0x10000000000000000n],
+ [-0x10000000000000001n, -0x7fffffffn, -0x1000000007fffffffn],
+ [-0x10000000000000000n, -0x7fffffffn, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x7fffffffn, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x7fffffffn, -0x10000000000000000n],
+ [-0x8000000000000001n, -0x7fffffffn, -0x800000007fffffffn],
+ [-0x8000000000000000n, -0x7fffffffn, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x7fffffffn, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x7fffffffn, -0x8000000000000000n],
+ [-0x100000001n, -0x7fffffffn, -0x17fffffffn],
+ [-0x100000000n, -0x7fffffffn, -0x100000000n],
+ [-0xffffffffn, -0x7fffffffn, -0xffffffffn],
+ [-0xfffffffen, -0x7fffffffn, -0x100000000n],
+ [-0x7fffffffn, -0x7fffffffn, -0x7fffffffn],
+ [-0x7ffffffen, -0x7fffffffn, -0x80000000n],
+ [0xfffffffen, -0x7fffffffn, 0x80000000n],
+ [0xffffffffn, -0x7fffffffn, 0x80000001n],
+ [0x100000000n, -0x7fffffffn, 0x100000000n],
+ [0x100000001n, -0x7fffffffn, 0x100000001n],
+ [0x7ffffffffffffffen, -0x7fffffffn, 0x7fffffff80000000n],
+ [0x7fffffffffffffffn, -0x7fffffffn, 0x7fffffff80000001n],
+ [0x8000000000000000n, -0x7fffffffn, 0x8000000000000000n],
+ [0x8000000000000001n, -0x7fffffffn, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0x7fffffffn, 0xffffffff80000000n],
+ [0xffffffffffffffffn, -0x7fffffffn, 0xffffffff80000001n],
+ [0x10000000000000000n, -0x7fffffffn, 0x10000000000000000n],
+ [0x10000000000000001n, -0x7fffffffn, 0x10000000000000001n],
+ [-0x10000000000000001n, -0x7ffffffen, -0x1000000007ffffffen],
+ [-0x10000000000000000n, -0x7ffffffen, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x7ffffffen, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0x7ffffffen, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0x7ffffffen, -0x800000007ffffffen],
+ [-0x8000000000000000n, -0x7ffffffen, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x7ffffffen, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0x7ffffffen, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x7ffffffen, -0x17ffffffen],
+ [-0x100000000n, -0x7ffffffen, -0x100000000n],
+ [-0xffffffffn, -0x7ffffffen, -0x100000000n],
+ [-0xfffffffen, -0x7ffffffen, -0xfffffffen],
+ [-0x7ffffffen, -0x7ffffffen, -0x7ffffffen],
+ [0xfffffffen, -0x7ffffffen, 0x80000002n],
+ [0xffffffffn, -0x7ffffffen, 0x80000002n],
+ [0x100000000n, -0x7ffffffen, 0x100000000n],
+ [0x100000001n, -0x7ffffffen, 0x100000000n],
+ [0x7ffffffffffffffen, -0x7ffffffen, 0x7fffffff80000002n],
+ [0x7fffffffffffffffn, -0x7ffffffen, 0x7fffffff80000002n],
+ [0x8000000000000000n, -0x7ffffffen, 0x8000000000000000n],
+ [0x8000000000000001n, -0x7ffffffen, 0x8000000000000000n],
+ [0xfffffffffffffffen, -0x7ffffffen, 0xffffffff80000002n],
+ [0xffffffffffffffffn, -0x7ffffffen, 0xffffffff80000002n],
+ [0x10000000000000000n, -0x7ffffffen, 0x10000000000000000n],
+ [0x10000000000000001n, -0x7ffffffen, 0x10000000000000000n],
+ [-0x10000000000000001n, 0xfffffffen, 0xfffffffen],
+ [-0x10000000000000000n, 0xfffffffen, 0n],
+ [-0xffffffffffffffffn, 0xfffffffen, 0n],
+ [-0xfffffffffffffffen, 0xfffffffen, 2n],
+ [-0x8000000000000001n, 0xfffffffen, 0xfffffffen],
+ [-0x8000000000000000n, 0xfffffffen, 0n],
+ [-0x7fffffffffffffffn, 0xfffffffen, 0n],
+ [-0x7ffffffffffffffen, 0xfffffffen, 2n],
+ [-0x100000001n, 0xfffffffen, 0xfffffffen],
+ [-0x100000000n, 0xfffffffen, 0n],
+ [-0xffffffffn, 0xfffffffen, 0n],
+ [-0xfffffffen, 0xfffffffen, 2n],
+ [0xfffffffen, 0xfffffffen, 0xfffffffen],
+ [0xffffffffn, 0xfffffffen, 0xfffffffen],
+ [0x100000000n, 0xfffffffen, 0n],
+ [0x100000001n, 0xfffffffen, 0n],
+ [0x7ffffffffffffffen, 0xfffffffen, 0xfffffffen],
+ [0x7fffffffffffffffn, 0xfffffffen, 0xfffffffen],
+ [0x8000000000000000n, 0xfffffffen, 0n],
+ [0x8000000000000001n, 0xfffffffen, 0n],
+ [0xfffffffffffffffen, 0xfffffffen, 0xfffffffen],
+ [0xffffffffffffffffn, 0xfffffffen, 0xfffffffen],
+ [0x10000000000000000n, 0xfffffffen, 0n],
+ [0x10000000000000001n, 0xfffffffen, 0n],
+ [-0x10000000000000001n, 0xffffffffn, 0xffffffffn],
+ [-0x10000000000000000n, 0xffffffffn, 0n],
+ [-0xffffffffffffffffn, 0xffffffffn, 1n],
+ [-0xfffffffffffffffen, 0xffffffffn, 2n],
+ [-0x8000000000000001n, 0xffffffffn, 0xffffffffn],
+ [-0x8000000000000000n, 0xffffffffn, 0n],
+ [-0x7fffffffffffffffn, 0xffffffffn, 1n],
+ [-0x7ffffffffffffffen, 0xffffffffn, 2n],
+ [-0x100000001n, 0xffffffffn, 0xffffffffn],
+ [-0x100000000n, 0xffffffffn, 0n],
+ [-0xffffffffn, 0xffffffffn, 1n],
+ [-0xfffffffen, 0xffffffffn, 2n],
+ [0xffffffffn, 0xffffffffn, 0xffffffffn],
+ [0x100000000n, 0xffffffffn, 0n],
+ [0x100000001n, 0xffffffffn, 1n],
+ [0x7ffffffffffffffen, 0xffffffffn, 0xfffffffen],
+ [0x7fffffffffffffffn, 0xffffffffn, 0xffffffffn],
+ [0x8000000000000000n, 0xffffffffn, 0n],
+ [0x8000000000000001n, 0xffffffffn, 1n],
+ [0xfffffffffffffffen, 0xffffffffn, 0xfffffffen],
+ [0xffffffffffffffffn, 0xffffffffn, 0xffffffffn],
+ [0x10000000000000000n, 0xffffffffn, 0n],
+ [0x10000000000000001n, 0xffffffffn, 1n],
+ [-0x10000000000000001n, 0x100000000n, 0x100000000n],
+ [-0x10000000000000000n, 0x100000000n, 0n],
+ [-0xffffffffffffffffn, 0x100000000n, 0n],
+ [-0xfffffffffffffffen, 0x100000000n, 0n],
+ [-0x8000000000000001n, 0x100000000n, 0x100000000n],
+ [-0x8000000000000000n, 0x100000000n, 0n],
+ [-0x7fffffffffffffffn, 0x100000000n, 0n],
+ [-0x7ffffffffffffffen, 0x100000000n, 0n],
+ [-0x100000001n, 0x100000000n, 0n],
+ [-0x100000000n, 0x100000000n, 0x100000000n],
+ [-0xffffffffn, 0x100000000n, 0x100000000n],
+ [-0xfffffffen, 0x100000000n, 0x100000000n],
+ [0x100000000n, 0x100000000n, 0x100000000n],
+ [0x100000001n, 0x100000000n, 0x100000000n],
+ [0x7ffffffffffffffen, 0x100000000n, 0x100000000n],
+ [0x7fffffffffffffffn, 0x100000000n, 0x100000000n],
+ [0x8000000000000000n, 0x100000000n, 0n],
+ [0x8000000000000001n, 0x100000000n, 0n],
+ [0xfffffffffffffffen, 0x100000000n, 0x100000000n],
+ [0xffffffffffffffffn, 0x100000000n, 0x100000000n],
+ [0x10000000000000000n, 0x100000000n, 0n],
+ [0x10000000000000001n, 0x100000000n, 0n],
+ [-0x10000000000000001n, 0x100000001n, 0x100000001n],
+ [-0x10000000000000000n, 0x100000001n, 0n],
+ [-0xffffffffffffffffn, 0x100000001n, 1n],
+ [-0xfffffffffffffffen, 0x100000001n, 0n],
+ [-0x8000000000000001n, 0x100000001n, 0x100000001n],
+ [-0x8000000000000000n, 0x100000001n, 0n],
+ [-0x7fffffffffffffffn, 0x100000001n, 1n],
+ [-0x7ffffffffffffffen, 0x100000001n, 0n],
+ [-0x100000001n, 0x100000001n, 1n],
+ [-0x100000000n, 0x100000001n, 0x100000000n],
+ [-0xffffffffn, 0x100000001n, 0x100000001n],
+ [-0xfffffffen, 0x100000001n, 0x100000000n],
+ [0x100000001n, 0x100000001n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x100000000n],
+ [0x7fffffffffffffffn, 0x100000001n, 0x100000001n],
+ [0x8000000000000000n, 0x100000001n, 0n],
+ [0x8000000000000001n, 0x100000001n, 1n],
+ [0xfffffffffffffffen, 0x100000001n, 0x100000000n],
+ [0xffffffffffffffffn, 0x100000001n, 0x100000001n],
+ [0x10000000000000000n, 0x100000001n, 0n],
+ [0x10000000000000001n, 0x100000001n, 1n],
+ [-0x10000000000000001n, -0x100000001n, -0x10000000100000001n],
+ [-0x10000000000000000n, -0x100000001n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x100000001n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x100000001n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0x100000001n, -0x8000000100000001n],
+ [-0x8000000000000000n, -0x100000001n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x100000001n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x100000001n, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x100000001n, -0x100000001n],
+ [-0x100000000n, -0x100000001n, -0x200000000n],
+ [-0xffffffffn, -0x100000001n, -0x1ffffffffn],
+ [-0xfffffffen, -0x100000001n, -0x1fffffffen],
+ [0x7ffffffffffffffen, -0x100000001n, 0x7ffffffefffffffen],
+ [0x7fffffffffffffffn, -0x100000001n, 0x7ffffffeffffffffn],
+ [0x8000000000000000n, -0x100000001n, 0x8000000000000000n],
+ [0x8000000000000001n, -0x100000001n, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0x100000001n, 0xfffffffefffffffen],
+ [0xffffffffffffffffn, -0x100000001n, 0xfffffffeffffffffn],
+ [0x10000000000000000n, -0x100000001n, 0x10000000000000000n],
+ [0x10000000000000001n, -0x100000001n, 0x10000000000000001n],
+ [-0x10000000000000001n, -0x100000000n, -0x10000000100000000n],
+ [-0x10000000000000000n, -0x100000000n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x100000000n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0x100000000n, -0x10000000000000000n],
+ [-0x8000000000000001n, -0x100000000n, -0x8000000100000000n],
+ [-0x8000000000000000n, -0x100000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x100000000n, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0x100000000n, -0x8000000000000000n],
+ [-0x100000000n, -0x100000000n, -0x100000000n],
+ [-0xffffffffn, -0x100000000n, -0x100000000n],
+ [-0xfffffffen, -0x100000000n, -0x100000000n],
+ [0x7ffffffffffffffen, -0x100000000n, 0x7fffffff00000000n],
+ [0x7fffffffffffffffn, -0x100000000n, 0x7fffffff00000000n],
+ [0x8000000000000000n, -0x100000000n, 0x8000000000000000n],
+ [0x8000000000000001n, -0x100000000n, 0x8000000000000000n],
+ [0xfffffffffffffffen, -0x100000000n, 0xffffffff00000000n],
+ [0xffffffffffffffffn, -0x100000000n, 0xffffffff00000000n],
+ [0x10000000000000000n, -0x100000000n, 0x10000000000000000n],
+ [0x10000000000000001n, -0x100000000n, 0x10000000000000000n],
+ [-0x10000000000000001n, -0xffffffffn, -0x100000000ffffffffn],
+ [-0x10000000000000000n, -0xffffffffn, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0xffffffffn, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0xffffffffn, -0x10000000000000000n],
+ [-0x8000000000000001n, -0xffffffffn, -0x80000000ffffffffn],
+ [-0x8000000000000000n, -0xffffffffn, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0xffffffffn, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0xffffffffn, -0x8000000000000000n],
+ [-0xffffffffn, -0xffffffffn, -0xffffffffn],
+ [-0xfffffffen, -0xffffffffn, -0x100000000n],
+ [0x7ffffffffffffffen, -0xffffffffn, 0x7fffffff00000000n],
+ [0x7fffffffffffffffn, -0xffffffffn, 0x7fffffff00000001n],
+ [0x8000000000000000n, -0xffffffffn, 0x8000000000000000n],
+ [0x8000000000000001n, -0xffffffffn, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0xffffffffn, 0xffffffff00000000n],
+ [0xffffffffffffffffn, -0xffffffffn, 0xffffffff00000001n],
+ [0x10000000000000000n, -0xffffffffn, 0x10000000000000000n],
+ [0x10000000000000001n, -0xffffffffn, 0x10000000000000001n],
+ [-0x10000000000000001n, -0xfffffffen, -0x100000000fffffffen],
+ [-0x10000000000000000n, -0xfffffffen, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0xfffffffen, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0xfffffffen, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0xfffffffen, -0x80000000fffffffen],
+ [-0x8000000000000000n, -0xfffffffen, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0xfffffffen, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0xfffffffen, -0x7ffffffffffffffen],
+ [-0xfffffffen, -0xfffffffen, -0xfffffffen],
+ [0x7ffffffffffffffen, -0xfffffffen, 0x7fffffff00000002n],
+ [0x7fffffffffffffffn, -0xfffffffen, 0x7fffffff00000002n],
+ [0x8000000000000000n, -0xfffffffen, 0x8000000000000000n],
+ [0x8000000000000001n, -0xfffffffen, 0x8000000000000000n],
+ [0xfffffffffffffffen, -0xfffffffen, 0xffffffff00000002n],
+ [0xffffffffffffffffn, -0xfffffffen, 0xffffffff00000002n],
+ [0x10000000000000000n, -0xfffffffen, 0x10000000000000000n],
+ [0x10000000000000001n, -0xfffffffen, 0x10000000000000000n],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, 0n],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, 0n],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, 2n],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, 0n],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, 0n],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, 2n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 0n],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 0n],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 0n],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 0n],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, 0n],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, 1n],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, 2n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, 0n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, 1n],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, 2n],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 0n],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 1n],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 0n],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 1n],
+ [-0x10000000000000001n, 0x8000000000000000n, 0x8000000000000000n],
+ [-0x10000000000000000n, 0x8000000000000000n, 0n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, 0n],
+ [-0xfffffffffffffffen, 0x8000000000000000n, 0n],
+ [-0x8000000000000001n, 0x8000000000000000n, 0n],
+ [-0x8000000000000000n, 0x8000000000000000n, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, 0x8000000000000000n],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, 0x8000000000000000n],
+ [0x8000000000000000n, 0x8000000000000000n, 0x8000000000000000n],
+ [0x8000000000000001n, 0x8000000000000000n, 0x8000000000000000n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 0x8000000000000000n],
+ [0xffffffffffffffffn, 0x8000000000000000n, 0x8000000000000000n],
+ [0x10000000000000000n, 0x8000000000000000n, 0n],
+ [0x10000000000000001n, 0x8000000000000000n, 0n],
+ [-0x10000000000000001n, 0x8000000000000001n, 0x8000000000000001n],
+ [-0x10000000000000000n, 0x8000000000000001n, 0n],
+ [-0xffffffffffffffffn, 0x8000000000000001n, 1n],
+ [-0xfffffffffffffffen, 0x8000000000000001n, 0n],
+ [-0x8000000000000001n, 0x8000000000000001n, 1n],
+ [-0x8000000000000000n, 0x8000000000000001n, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, 0x8000000000000001n],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, 0x8000000000000000n],
+ [0x8000000000000001n, 0x8000000000000001n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 0x8000000000000000n],
+ [0xffffffffffffffffn, 0x8000000000000001n, 0x8000000000000001n],
+ [0x10000000000000000n, 0x8000000000000001n, 0n],
+ [0x10000000000000001n, 0x8000000000000001n, 1n],
+ [-0x10000000000000001n, -0x8000000000000001n, -0x18000000000000001n],
+ [-0x10000000000000000n, -0x8000000000000001n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000001n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x8000000000000001n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0x8000000000000001n, -0x8000000000000001n],
+ [-0x8000000000000000n, -0x8000000000000001n, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, -0xffffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, -0xfffffffffffffffen],
+ [0xfffffffffffffffen, -0x8000000000000001n, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, -0x8000000000000001n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, -0x8000000000000001n, 0x10000000000000000n],
+ [0x10000000000000001n, -0x8000000000000001n, 0x10000000000000001n],
+ [-0x10000000000000001n, -0x8000000000000000n, -0x18000000000000000n],
+ [-0x10000000000000000n, -0x8000000000000000n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0x8000000000000000n, -0x10000000000000000n],
+ [-0x8000000000000000n, -0x8000000000000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, -0x8000000000000000n],
+ [0xfffffffffffffffen, -0x8000000000000000n, 0x8000000000000000n],
+ [0xffffffffffffffffn, -0x8000000000000000n, 0x8000000000000000n],
+ [0x10000000000000000n, -0x8000000000000000n, 0x10000000000000000n],
+ [0x10000000000000001n, -0x8000000000000000n, 0x10000000000000000n],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, -0x17fffffffffffffffn],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, -0x8000000000000000n],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, 0x8000000000000000n],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, 0x8000000000000001n],
+ [0x10000000000000000n, -0x7fffffffffffffffn, 0x10000000000000000n],
+ [0x10000000000000001n, -0x7fffffffffffffffn, 0x10000000000000001n],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, -0x17ffffffffffffffen],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, -0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, 0x8000000000000002n],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, 0x8000000000000002n],
+ [0x10000000000000000n, -0x7ffffffffffffffen, 0x10000000000000000n],
+ [0x10000000000000001n, -0x7ffffffffffffffen, 0x10000000000000000n],
+ [-0x10000000000000001n, 0xfffffffffffffffen, 0xfffffffffffffffen],
+ [-0x10000000000000000n, 0xfffffffffffffffen, 0n],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, 0n],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, 2n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 0xfffffffffffffffen],
+ [0x10000000000000000n, 0xfffffffffffffffen, 0n],
+ [0x10000000000000001n, 0xfffffffffffffffen, 0n],
+ [-0x10000000000000001n, 0xffffffffffffffffn, 0xffffffffffffffffn],
+ [-0x10000000000000000n, 0xffffffffffffffffn, 0n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, 1n],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, 2n],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0xffffffffffffffffn, 0n],
+ [0x10000000000000001n, 0xffffffffffffffffn, 1n],
+ [-0x10000000000000001n, 0x10000000000000000n, 0n],
+ [-0x10000000000000000n, 0x10000000000000000n, 0x10000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, 0x10000000000000000n],
+ [-0xfffffffffffffffen, 0x10000000000000000n, 0x10000000000000000n],
+ [0x10000000000000000n, 0x10000000000000000n, 0x10000000000000000n],
+ [0x10000000000000001n, 0x10000000000000000n, 0x10000000000000000n],
+ [-0x10000000000000001n, 0x10000000000000001n, 1n],
+ [-0x10000000000000000n, 0x10000000000000001n, 0x10000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000001n, 0x10000000000000001n],
+ [-0xfffffffffffffffen, 0x10000000000000001n, 0x10000000000000000n],
+ [0x10000000000000001n, 0x10000000000000001n, 0x10000000000000001n],
+ [-0x10000000000000001n, -0x10000000000000001n, -0x10000000000000001n],
+ [-0x10000000000000000n, -0x10000000000000001n, -0x20000000000000000n],
+ [-0xffffffffffffffffn, -0x10000000000000001n, -0x1ffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x10000000000000001n, -0x1fffffffffffffffen],
+ [-0x10000000000000000n, -0x10000000000000000n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0x10000000000000000n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, -0xfffffffffffffffen],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs & rhs, expected);
+ assertEq(rhs & lhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-cmp-equality.js b/js/src/jit-test/tests/bigint/bigint-cmp-equality.js
new file mode 100644
index 0000000000..cc02b499a5
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-cmp-equality.js
@@ -0,0 +1,2442 @@
+const tests = [
+ [-0x100000000000000000000000000000001n, -2n, false],
+ [-0x100000000000000000000000000000000n, -2n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -2n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -2n, false],
+ [-0x80000000000000000000000000000001n, -2n, false],
+ [-0x80000000000000000000000000000000n, -2n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -2n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -2n, false],
+ [-0x1000000000000000000000001n, -2n, false],
+ [-0x1000000000000000000000000n, -2n, false],
+ [-0xffffffffffffffffffffffffn, -2n, false],
+ [-0xfffffffffffffffffffffffen, -2n, false],
+ [-0x800000000000000000000001n, -2n, false],
+ [-0x800000000000000000000000n, -2n, false],
+ [-0x7fffffffffffffffffffffffn, -2n, false],
+ [-0x7ffffffffffffffffffffffen, -2n, false],
+ [-0x10000000000000001n, -2n, false],
+ [-0x10000000000000000n, -2n, false],
+ [-0xffffffffffffffffn, -2n, false],
+ [-0xfffffffffffffffen, -2n, false],
+ [-0x8000000000000001n, -2n, false],
+ [-0x8000000000000000n, -2n, false],
+ [-0x7fffffffffffffffn, -2n, false],
+ [-0x7ffffffffffffffen, -2n, false],
+ [-0x100000001n, -2n, false],
+ [-0x100000000n, -2n, false],
+ [-0xffffffffn, -2n, false],
+ [-0xfffffffen, -2n, false],
+ [-0x80000001n, -2n, false],
+ [-0x80000000n, -2n, false],
+ [-0x7fffffffn, -2n, false],
+ [-0x7ffffffen, -2n, false],
+ [-2n, -2n, true],
+ [-1n, -2n, false],
+ [0n, -2n, false],
+ [1n, -2n, false],
+ [2n, -2n, false],
+ [0x7ffffffen, -2n, false],
+ [0x7fffffffn, -2n, false],
+ [0x80000000n, -2n, false],
+ [0x80000001n, -2n, false],
+ [0xfffffffen, -2n, false],
+ [0xffffffffn, -2n, false],
+ [0x100000000n, -2n, false],
+ [0x100000001n, -2n, false],
+ [0x7ffffffffffffffen, -2n, false],
+ [0x7fffffffffffffffn, -2n, false],
+ [0x8000000000000000n, -2n, false],
+ [0x8000000000000001n, -2n, false],
+ [0xfffffffffffffffen, -2n, false],
+ [0xffffffffffffffffn, -2n, false],
+ [0x10000000000000000n, -2n, false],
+ [0x10000000000000001n, -2n, false],
+ [0x7ffffffffffffffffffffffen, -2n, false],
+ [0x7fffffffffffffffffffffffn, -2n, false],
+ [0x800000000000000000000000n, -2n, false],
+ [0x800000000000000000000001n, -2n, false],
+ [0xfffffffffffffffffffffffen, -2n, false],
+ [0xffffffffffffffffffffffffn, -2n, false],
+ [0x1000000000000000000000000n, -2n, false],
+ [0x1000000000000000000000001n, -2n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -2n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -2n, false],
+ [0x80000000000000000000000000000000n, -2n, false],
+ [0x80000000000000000000000000000001n, -2n, false],
+ [0xfffffffffffffffffffffffffffffffen, -2n, false],
+ [0xffffffffffffffffffffffffffffffffn, -2n, false],
+ [0x100000000000000000000000000000000n, -2n, false],
+ [0x100000000000000000000000000000001n, -2n, false],
+ [-0x100000000000000000000000000000001n, -1n, false],
+ [-0x100000000000000000000000000000000n, -1n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -1n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -1n, false],
+ [-0x80000000000000000000000000000001n, -1n, false],
+ [-0x80000000000000000000000000000000n, -1n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -1n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -1n, false],
+ [-0x1000000000000000000000001n, -1n, false],
+ [-0x1000000000000000000000000n, -1n, false],
+ [-0xffffffffffffffffffffffffn, -1n, false],
+ [-0xfffffffffffffffffffffffen, -1n, false],
+ [-0x800000000000000000000001n, -1n, false],
+ [-0x800000000000000000000000n, -1n, false],
+ [-0x7fffffffffffffffffffffffn, -1n, false],
+ [-0x7ffffffffffffffffffffffen, -1n, false],
+ [-0x10000000000000001n, -1n, false],
+ [-0x10000000000000000n, -1n, false],
+ [-0xffffffffffffffffn, -1n, false],
+ [-0xfffffffffffffffen, -1n, false],
+ [-0x8000000000000001n, -1n, false],
+ [-0x8000000000000000n, -1n, false],
+ [-0x7fffffffffffffffn, -1n, false],
+ [-0x7ffffffffffffffen, -1n, false],
+ [-0x100000001n, -1n, false],
+ [-0x100000000n, -1n, false],
+ [-0xffffffffn, -1n, false],
+ [-0xfffffffen, -1n, false],
+ [-0x80000001n, -1n, false],
+ [-0x80000000n, -1n, false],
+ [-0x7fffffffn, -1n, false],
+ [-0x7ffffffen, -1n, false],
+ [-1n, -1n, true],
+ [0n, -1n, false],
+ [1n, -1n, false],
+ [2n, -1n, false],
+ [0x7ffffffen, -1n, false],
+ [0x7fffffffn, -1n, false],
+ [0x80000000n, -1n, false],
+ [0x80000001n, -1n, false],
+ [0xfffffffen, -1n, false],
+ [0xffffffffn, -1n, false],
+ [0x100000000n, -1n, false],
+ [0x100000001n, -1n, false],
+ [0x7ffffffffffffffen, -1n, false],
+ [0x7fffffffffffffffn, -1n, false],
+ [0x8000000000000000n, -1n, false],
+ [0x8000000000000001n, -1n, false],
+ [0xfffffffffffffffen, -1n, false],
+ [0xffffffffffffffffn, -1n, false],
+ [0x10000000000000000n, -1n, false],
+ [0x10000000000000001n, -1n, false],
+ [0x7ffffffffffffffffffffffen, -1n, false],
+ [0x7fffffffffffffffffffffffn, -1n, false],
+ [0x800000000000000000000000n, -1n, false],
+ [0x800000000000000000000001n, -1n, false],
+ [0xfffffffffffffffffffffffen, -1n, false],
+ [0xffffffffffffffffffffffffn, -1n, false],
+ [0x1000000000000000000000000n, -1n, false],
+ [0x1000000000000000000000001n, -1n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -1n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -1n, false],
+ [0x80000000000000000000000000000000n, -1n, false],
+ [0x80000000000000000000000000000001n, -1n, false],
+ [0xfffffffffffffffffffffffffffffffen, -1n, false],
+ [0xffffffffffffffffffffffffffffffffn, -1n, false],
+ [0x100000000000000000000000000000000n, -1n, false],
+ [0x100000000000000000000000000000001n, -1n, false],
+ [-0x100000000000000000000000000000001n, 0n, false],
+ [-0x100000000000000000000000000000000n, 0n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0n, false],
+ [-0x80000000000000000000000000000001n, 0n, false],
+ [-0x80000000000000000000000000000000n, 0n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0n, false],
+ [-0x1000000000000000000000001n, 0n, false],
+ [-0x1000000000000000000000000n, 0n, false],
+ [-0xffffffffffffffffffffffffn, 0n, false],
+ [-0xfffffffffffffffffffffffen, 0n, false],
+ [-0x800000000000000000000001n, 0n, false],
+ [-0x800000000000000000000000n, 0n, false],
+ [-0x7fffffffffffffffffffffffn, 0n, false],
+ [-0x7ffffffffffffffffffffffen, 0n, false],
+ [-0x10000000000000001n, 0n, false],
+ [-0x10000000000000000n, 0n, false],
+ [-0xffffffffffffffffn, 0n, false],
+ [-0xfffffffffffffffen, 0n, false],
+ [-0x8000000000000001n, 0n, false],
+ [-0x8000000000000000n, 0n, false],
+ [-0x7fffffffffffffffn, 0n, false],
+ [-0x7ffffffffffffffen, 0n, false],
+ [-0x100000001n, 0n, false],
+ [-0x100000000n, 0n, false],
+ [-0xffffffffn, 0n, false],
+ [-0xfffffffen, 0n, false],
+ [-0x80000001n, 0n, false],
+ [-0x80000000n, 0n, false],
+ [-0x7fffffffn, 0n, false],
+ [-0x7ffffffen, 0n, false],
+ [0n, 0n, true],
+ [1n, 0n, false],
+ [2n, 0n, false],
+ [0x7ffffffen, 0n, false],
+ [0x7fffffffn, 0n, false],
+ [0x80000000n, 0n, false],
+ [0x80000001n, 0n, false],
+ [0xfffffffen, 0n, false],
+ [0xffffffffn, 0n, false],
+ [0x100000000n, 0n, false],
+ [0x100000001n, 0n, false],
+ [0x7ffffffffffffffen, 0n, false],
+ [0x7fffffffffffffffn, 0n, false],
+ [0x8000000000000000n, 0n, false],
+ [0x8000000000000001n, 0n, false],
+ [0xfffffffffffffffen, 0n, false],
+ [0xffffffffffffffffn, 0n, false],
+ [0x10000000000000000n, 0n, false],
+ [0x10000000000000001n, 0n, false],
+ [0x7ffffffffffffffffffffffen, 0n, false],
+ [0x7fffffffffffffffffffffffn, 0n, false],
+ [0x800000000000000000000000n, 0n, false],
+ [0x800000000000000000000001n, 0n, false],
+ [0xfffffffffffffffffffffffen, 0n, false],
+ [0xffffffffffffffffffffffffn, 0n, false],
+ [0x1000000000000000000000000n, 0n, false],
+ [0x1000000000000000000000001n, 0n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0n, false],
+ [0x80000000000000000000000000000000n, 0n, false],
+ [0x80000000000000000000000000000001n, 0n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0n, false],
+ [0x100000000000000000000000000000000n, 0n, false],
+ [0x100000000000000000000000000000001n, 0n, false],
+ [-0x100000000000000000000000000000001n, 1n, false],
+ [-0x100000000000000000000000000000000n, 1n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 1n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 1n, false],
+ [-0x80000000000000000000000000000001n, 1n, false],
+ [-0x80000000000000000000000000000000n, 1n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 1n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 1n, false],
+ [-0x1000000000000000000000001n, 1n, false],
+ [-0x1000000000000000000000000n, 1n, false],
+ [-0xffffffffffffffffffffffffn, 1n, false],
+ [-0xfffffffffffffffffffffffen, 1n, false],
+ [-0x800000000000000000000001n, 1n, false],
+ [-0x800000000000000000000000n, 1n, false],
+ [-0x7fffffffffffffffffffffffn, 1n, false],
+ [-0x7ffffffffffffffffffffffen, 1n, false],
+ [-0x10000000000000001n, 1n, false],
+ [-0x10000000000000000n, 1n, false],
+ [-0xffffffffffffffffn, 1n, false],
+ [-0xfffffffffffffffen, 1n, false],
+ [-0x8000000000000001n, 1n, false],
+ [-0x8000000000000000n, 1n, false],
+ [-0x7fffffffffffffffn, 1n, false],
+ [-0x7ffffffffffffffen, 1n, false],
+ [-0x100000001n, 1n, false],
+ [-0x100000000n, 1n, false],
+ [-0xffffffffn, 1n, false],
+ [-0xfffffffen, 1n, false],
+ [-0x80000001n, 1n, false],
+ [-0x80000000n, 1n, false],
+ [-0x7fffffffn, 1n, false],
+ [-0x7ffffffen, 1n, false],
+ [1n, 1n, true],
+ [2n, 1n, false],
+ [0x7ffffffen, 1n, false],
+ [0x7fffffffn, 1n, false],
+ [0x80000000n, 1n, false],
+ [0x80000001n, 1n, false],
+ [0xfffffffen, 1n, false],
+ [0xffffffffn, 1n, false],
+ [0x100000000n, 1n, false],
+ [0x100000001n, 1n, false],
+ [0x7ffffffffffffffen, 1n, false],
+ [0x7fffffffffffffffn, 1n, false],
+ [0x8000000000000000n, 1n, false],
+ [0x8000000000000001n, 1n, false],
+ [0xfffffffffffffffen, 1n, false],
+ [0xffffffffffffffffn, 1n, false],
+ [0x10000000000000000n, 1n, false],
+ [0x10000000000000001n, 1n, false],
+ [0x7ffffffffffffffffffffffen, 1n, false],
+ [0x7fffffffffffffffffffffffn, 1n, false],
+ [0x800000000000000000000000n, 1n, false],
+ [0x800000000000000000000001n, 1n, false],
+ [0xfffffffffffffffffffffffen, 1n, false],
+ [0xffffffffffffffffffffffffn, 1n, false],
+ [0x1000000000000000000000000n, 1n, false],
+ [0x1000000000000000000000001n, 1n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 1n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 1n, false],
+ [0x80000000000000000000000000000000n, 1n, false],
+ [0x80000000000000000000000000000001n, 1n, false],
+ [0xfffffffffffffffffffffffffffffffen, 1n, false],
+ [0xffffffffffffffffffffffffffffffffn, 1n, false],
+ [0x100000000000000000000000000000000n, 1n, false],
+ [0x100000000000000000000000000000001n, 1n, false],
+ [-0x100000000000000000000000000000001n, 2n, false],
+ [-0x100000000000000000000000000000000n, 2n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 2n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 2n, false],
+ [-0x80000000000000000000000000000001n, 2n, false],
+ [-0x80000000000000000000000000000000n, 2n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 2n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 2n, false],
+ [-0x1000000000000000000000001n, 2n, false],
+ [-0x1000000000000000000000000n, 2n, false],
+ [-0xffffffffffffffffffffffffn, 2n, false],
+ [-0xfffffffffffffffffffffffen, 2n, false],
+ [-0x800000000000000000000001n, 2n, false],
+ [-0x800000000000000000000000n, 2n, false],
+ [-0x7fffffffffffffffffffffffn, 2n, false],
+ [-0x7ffffffffffffffffffffffen, 2n, false],
+ [-0x10000000000000001n, 2n, false],
+ [-0x10000000000000000n, 2n, false],
+ [-0xffffffffffffffffn, 2n, false],
+ [-0xfffffffffffffffen, 2n, false],
+ [-0x8000000000000001n, 2n, false],
+ [-0x8000000000000000n, 2n, false],
+ [-0x7fffffffffffffffn, 2n, false],
+ [-0x7ffffffffffffffen, 2n, false],
+ [-0x100000001n, 2n, false],
+ [-0x100000000n, 2n, false],
+ [-0xffffffffn, 2n, false],
+ [-0xfffffffen, 2n, false],
+ [-0x80000001n, 2n, false],
+ [-0x80000000n, 2n, false],
+ [-0x7fffffffn, 2n, false],
+ [-0x7ffffffen, 2n, false],
+ [2n, 2n, true],
+ [0x7ffffffen, 2n, false],
+ [0x7fffffffn, 2n, false],
+ [0x80000000n, 2n, false],
+ [0x80000001n, 2n, false],
+ [0xfffffffen, 2n, false],
+ [0xffffffffn, 2n, false],
+ [0x100000000n, 2n, false],
+ [0x100000001n, 2n, false],
+ [0x7ffffffffffffffen, 2n, false],
+ [0x7fffffffffffffffn, 2n, false],
+ [0x8000000000000000n, 2n, false],
+ [0x8000000000000001n, 2n, false],
+ [0xfffffffffffffffen, 2n, false],
+ [0xffffffffffffffffn, 2n, false],
+ [0x10000000000000000n, 2n, false],
+ [0x10000000000000001n, 2n, false],
+ [0x7ffffffffffffffffffffffen, 2n, false],
+ [0x7fffffffffffffffffffffffn, 2n, false],
+ [0x800000000000000000000000n, 2n, false],
+ [0x800000000000000000000001n, 2n, false],
+ [0xfffffffffffffffffffffffen, 2n, false],
+ [0xffffffffffffffffffffffffn, 2n, false],
+ [0x1000000000000000000000000n, 2n, false],
+ [0x1000000000000000000000001n, 2n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 2n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 2n, false],
+ [0x80000000000000000000000000000000n, 2n, false],
+ [0x80000000000000000000000000000001n, 2n, false],
+ [0xfffffffffffffffffffffffffffffffen, 2n, false],
+ [0xffffffffffffffffffffffffffffffffn, 2n, false],
+ [0x100000000000000000000000000000000n, 2n, false],
+ [0x100000000000000000000000000000001n, 2n, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffen, false],
+ [-0x100000000000000000000000000000000n, 0x7ffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffen, false],
+ [-0x80000000000000000000000000000001n, 0x7ffffffen, false],
+ [-0x80000000000000000000000000000000n, 0x7ffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffen, false],
+ [-0x1000000000000000000000001n, 0x7ffffffen, false],
+ [-0x1000000000000000000000000n, 0x7ffffffen, false],
+ [-0xffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [-0xfffffffffffffffffffffffen, 0x7ffffffen, false],
+ [-0x800000000000000000000001n, 0x7ffffffen, false],
+ [-0x800000000000000000000000n, 0x7ffffffen, false],
+ [-0x7fffffffffffffffffffffffn, 0x7ffffffen, false],
+ [-0x7ffffffffffffffffffffffen, 0x7ffffffen, false],
+ [-0x10000000000000001n, 0x7ffffffen, false],
+ [-0x10000000000000000n, 0x7ffffffen, false],
+ [-0xffffffffffffffffn, 0x7ffffffen, false],
+ [-0xfffffffffffffffen, 0x7ffffffen, false],
+ [-0x8000000000000001n, 0x7ffffffen, false],
+ [-0x8000000000000000n, 0x7ffffffen, false],
+ [-0x7fffffffffffffffn, 0x7ffffffen, false],
+ [-0x7ffffffffffffffen, 0x7ffffffen, false],
+ [-0x100000001n, 0x7ffffffen, false],
+ [-0x100000000n, 0x7ffffffen, false],
+ [-0xffffffffn, 0x7ffffffen, false],
+ [-0xfffffffen, 0x7ffffffen, false],
+ [-0x80000001n, 0x7ffffffen, false],
+ [-0x80000000n, 0x7ffffffen, false],
+ [-0x7fffffffn, 0x7ffffffen, false],
+ [-0x7ffffffen, 0x7ffffffen, false],
+ [0x7ffffffen, 0x7ffffffen, true],
+ [0x7fffffffn, 0x7ffffffen, false],
+ [0x80000000n, 0x7ffffffen, false],
+ [0x80000001n, 0x7ffffffen, false],
+ [0xfffffffen, 0x7ffffffen, false],
+ [0xffffffffn, 0x7ffffffen, false],
+ [0x100000000n, 0x7ffffffen, false],
+ [0x100000001n, 0x7ffffffen, false],
+ [0x7ffffffffffffffen, 0x7ffffffen, false],
+ [0x7fffffffffffffffn, 0x7ffffffen, false],
+ [0x8000000000000000n, 0x7ffffffen, false],
+ [0x8000000000000001n, 0x7ffffffen, false],
+ [0xfffffffffffffffen, 0x7ffffffen, false],
+ [0xffffffffffffffffn, 0x7ffffffen, false],
+ [0x10000000000000000n, 0x7ffffffen, false],
+ [0x10000000000000001n, 0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x800000000000000000000000n, 0x7ffffffen, false],
+ [0x800000000000000000000001n, 0x7ffffffen, false],
+ [0xfffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0xffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x1000000000000000000000000n, 0x7ffffffen, false],
+ [0x1000000000000000000000001n, 0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffn, false],
+ [-0x100000000000000000000000000000000n, 0x7fffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffn, false],
+ [-0x80000000000000000000000000000001n, 0x7fffffffn, false],
+ [-0x80000000000000000000000000000000n, 0x7fffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffn, false],
+ [-0x1000000000000000000000001n, 0x7fffffffn, false],
+ [-0x1000000000000000000000000n, 0x7fffffffn, false],
+ [-0xffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [-0xfffffffffffffffffffffffen, 0x7fffffffn, false],
+ [-0x800000000000000000000001n, 0x7fffffffn, false],
+ [-0x800000000000000000000000n, 0x7fffffffn, false],
+ [-0x7fffffffffffffffffffffffn, 0x7fffffffn, false],
+ [-0x7ffffffffffffffffffffffen, 0x7fffffffn, false],
+ [-0x10000000000000001n, 0x7fffffffn, false],
+ [-0x10000000000000000n, 0x7fffffffn, false],
+ [-0xffffffffffffffffn, 0x7fffffffn, false],
+ [-0xfffffffffffffffen, 0x7fffffffn, false],
+ [-0x8000000000000001n, 0x7fffffffn, false],
+ [-0x8000000000000000n, 0x7fffffffn, false],
+ [-0x7fffffffffffffffn, 0x7fffffffn, false],
+ [-0x7ffffffffffffffen, 0x7fffffffn, false],
+ [-0x100000001n, 0x7fffffffn, false],
+ [-0x100000000n, 0x7fffffffn, false],
+ [-0xffffffffn, 0x7fffffffn, false],
+ [-0xfffffffen, 0x7fffffffn, false],
+ [-0x80000001n, 0x7fffffffn, false],
+ [-0x80000000n, 0x7fffffffn, false],
+ [-0x7fffffffn, 0x7fffffffn, false],
+ [-0x7ffffffen, 0x7fffffffn, false],
+ [0x7fffffffn, 0x7fffffffn, true],
+ [0x80000000n, 0x7fffffffn, false],
+ [0x80000001n, 0x7fffffffn, false],
+ [0xfffffffen, 0x7fffffffn, false],
+ [0xffffffffn, 0x7fffffffn, false],
+ [0x100000000n, 0x7fffffffn, false],
+ [0x100000001n, 0x7fffffffn, false],
+ [0x7ffffffffffffffen, 0x7fffffffn, false],
+ [0x7fffffffffffffffn, 0x7fffffffn, false],
+ [0x8000000000000000n, 0x7fffffffn, false],
+ [0x8000000000000001n, 0x7fffffffn, false],
+ [0xfffffffffffffffen, 0x7fffffffn, false],
+ [0xffffffffffffffffn, 0x7fffffffn, false],
+ [0x10000000000000000n, 0x7fffffffn, false],
+ [0x10000000000000001n, 0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x800000000000000000000000n, 0x7fffffffn, false],
+ [0x800000000000000000000001n, 0x7fffffffn, false],
+ [0xfffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0xffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x1000000000000000000000000n, 0x7fffffffn, false],
+ [0x1000000000000000000000001n, 0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x80000000000000000000000000000000n, 0x7fffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x80000000n, false],
+ [-0x100000000000000000000000000000000n, 0x80000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000000n, false],
+ [-0x80000000000000000000000000000001n, 0x80000000n, false],
+ [-0x80000000000000000000000000000000n, 0x80000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000000n, false],
+ [-0x1000000000000000000000001n, 0x80000000n, false],
+ [-0x1000000000000000000000000n, 0x80000000n, false],
+ [-0xffffffffffffffffffffffffn, 0x80000000n, false],
+ [-0xfffffffffffffffffffffffen, 0x80000000n, false],
+ [-0x800000000000000000000001n, 0x80000000n, false],
+ [-0x800000000000000000000000n, 0x80000000n, false],
+ [-0x7fffffffffffffffffffffffn, 0x80000000n, false],
+ [-0x7ffffffffffffffffffffffen, 0x80000000n, false],
+ [-0x10000000000000001n, 0x80000000n, false],
+ [-0x10000000000000000n, 0x80000000n, false],
+ [-0xffffffffffffffffn, 0x80000000n, false],
+ [-0xfffffffffffffffen, 0x80000000n, false],
+ [-0x8000000000000001n, 0x80000000n, false],
+ [-0x8000000000000000n, 0x80000000n, false],
+ [-0x7fffffffffffffffn, 0x80000000n, false],
+ [-0x7ffffffffffffffen, 0x80000000n, false],
+ [-0x100000001n, 0x80000000n, false],
+ [-0x100000000n, 0x80000000n, false],
+ [-0xffffffffn, 0x80000000n, false],
+ [-0xfffffffen, 0x80000000n, false],
+ [-0x80000001n, 0x80000000n, false],
+ [-0x80000000n, 0x80000000n, false],
+ [-0x7fffffffn, 0x80000000n, false],
+ [-0x7ffffffen, 0x80000000n, false],
+ [0x80000000n, 0x80000000n, true],
+ [0x80000001n, 0x80000000n, false],
+ [0xfffffffen, 0x80000000n, false],
+ [0xffffffffn, 0x80000000n, false],
+ [0x100000000n, 0x80000000n, false],
+ [0x100000001n, 0x80000000n, false],
+ [0x7ffffffffffffffen, 0x80000000n, false],
+ [0x7fffffffffffffffn, 0x80000000n, false],
+ [0x8000000000000000n, 0x80000000n, false],
+ [0x8000000000000001n, 0x80000000n, false],
+ [0xfffffffffffffffen, 0x80000000n, false],
+ [0xffffffffffffffffn, 0x80000000n, false],
+ [0x10000000000000000n, 0x80000000n, false],
+ [0x10000000000000001n, 0x80000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x80000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x80000000n, false],
+ [0x800000000000000000000000n, 0x80000000n, false],
+ [0x800000000000000000000001n, 0x80000000n, false],
+ [0xfffffffffffffffffffffffen, 0x80000000n, false],
+ [0xffffffffffffffffffffffffn, 0x80000000n, false],
+ [0x1000000000000000000000000n, 0x80000000n, false],
+ [0x1000000000000000000000001n, 0x80000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x80000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x80000000n, false],
+ [0x80000000000000000000000000000000n, 0x80000000n, false],
+ [0x80000000000000000000000000000001n, 0x80000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000000n, false],
+ [0x100000000000000000000000000000000n, 0x80000000n, false],
+ [0x100000000000000000000000000000001n, 0x80000000n, false],
+ [-0x100000000000000000000000000000001n, 0x80000001n, false],
+ [-0x100000000000000000000000000000000n, 0x80000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000001n, false],
+ [-0x80000000000000000000000000000001n, 0x80000001n, false],
+ [-0x80000000000000000000000000000000n, 0x80000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000001n, false],
+ [-0x1000000000000000000000001n, 0x80000001n, false],
+ [-0x1000000000000000000000000n, 0x80000001n, false],
+ [-0xffffffffffffffffffffffffn, 0x80000001n, false],
+ [-0xfffffffffffffffffffffffen, 0x80000001n, false],
+ [-0x800000000000000000000001n, 0x80000001n, false],
+ [-0x800000000000000000000000n, 0x80000001n, false],
+ [-0x7fffffffffffffffffffffffn, 0x80000001n, false],
+ [-0x7ffffffffffffffffffffffen, 0x80000001n, false],
+ [-0x10000000000000001n, 0x80000001n, false],
+ [-0x10000000000000000n, 0x80000001n, false],
+ [-0xffffffffffffffffn, 0x80000001n, false],
+ [-0xfffffffffffffffen, 0x80000001n, false],
+ [-0x8000000000000001n, 0x80000001n, false],
+ [-0x8000000000000000n, 0x80000001n, false],
+ [-0x7fffffffffffffffn, 0x80000001n, false],
+ [-0x7ffffffffffffffen, 0x80000001n, false],
+ [-0x100000001n, 0x80000001n, false],
+ [-0x100000000n, 0x80000001n, false],
+ [-0xffffffffn, 0x80000001n, false],
+ [-0xfffffffen, 0x80000001n, false],
+ [-0x80000001n, 0x80000001n, false],
+ [-0x80000000n, 0x80000001n, false],
+ [-0x7fffffffn, 0x80000001n, false],
+ [-0x7ffffffen, 0x80000001n, false],
+ [0x80000001n, 0x80000001n, true],
+ [0xfffffffen, 0x80000001n, false],
+ [0xffffffffn, 0x80000001n, false],
+ [0x100000000n, 0x80000001n, false],
+ [0x100000001n, 0x80000001n, false],
+ [0x7ffffffffffffffen, 0x80000001n, false],
+ [0x7fffffffffffffffn, 0x80000001n, false],
+ [0x8000000000000000n, 0x80000001n, false],
+ [0x8000000000000001n, 0x80000001n, false],
+ [0xfffffffffffffffen, 0x80000001n, false],
+ [0xffffffffffffffffn, 0x80000001n, false],
+ [0x10000000000000000n, 0x80000001n, false],
+ [0x10000000000000001n, 0x80000001n, false],
+ [0x7ffffffffffffffffffffffen, 0x80000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x80000001n, false],
+ [0x800000000000000000000000n, 0x80000001n, false],
+ [0x800000000000000000000001n, 0x80000001n, false],
+ [0xfffffffffffffffffffffffen, 0x80000001n, false],
+ [0xffffffffffffffffffffffffn, 0x80000001n, false],
+ [0x1000000000000000000000000n, 0x80000001n, false],
+ [0x1000000000000000000000001n, 0x80000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x80000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x80000001n, false],
+ [0x80000000000000000000000000000000n, 0x80000001n, false],
+ [0x80000000000000000000000000000001n, 0x80000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000001n, false],
+ [0x100000000000000000000000000000000n, 0x80000001n, false],
+ [0x100000000000000000000000000000001n, 0x80000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000001n, false],
+ [-0x100000000000000000000000000000000n, -0x80000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000001n, false],
+ [-0x80000000000000000000000000000001n, -0x80000001n, false],
+ [-0x80000000000000000000000000000000n, -0x80000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000001n, false],
+ [-0x1000000000000000000000001n, -0x80000001n, false],
+ [-0x1000000000000000000000000n, -0x80000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x80000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x80000001n, false],
+ [-0x800000000000000000000001n, -0x80000001n, false],
+ [-0x800000000000000000000000n, -0x80000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x80000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x80000001n, false],
+ [-0x10000000000000001n, -0x80000001n, false],
+ [-0x10000000000000000n, -0x80000001n, false],
+ [-0xffffffffffffffffn, -0x80000001n, false],
+ [-0xfffffffffffffffen, -0x80000001n, false],
+ [-0x8000000000000001n, -0x80000001n, false],
+ [-0x8000000000000000n, -0x80000001n, false],
+ [-0x7fffffffffffffffn, -0x80000001n, false],
+ [-0x7ffffffffffffffen, -0x80000001n, false],
+ [-0x100000001n, -0x80000001n, false],
+ [-0x100000000n, -0x80000001n, false],
+ [-0xffffffffn, -0x80000001n, false],
+ [-0xfffffffen, -0x80000001n, false],
+ [-0x80000001n, -0x80000001n, true],
+ [-0x80000000n, -0x80000001n, false],
+ [-0x7fffffffn, -0x80000001n, false],
+ [-0x7ffffffen, -0x80000001n, false],
+ [0xfffffffen, -0x80000001n, false],
+ [0xffffffffn, -0x80000001n, false],
+ [0x100000000n, -0x80000001n, false],
+ [0x100000001n, -0x80000001n, false],
+ [0x7ffffffffffffffen, -0x80000001n, false],
+ [0x7fffffffffffffffn, -0x80000001n, false],
+ [0x8000000000000000n, -0x80000001n, false],
+ [0x8000000000000001n, -0x80000001n, false],
+ [0xfffffffffffffffen, -0x80000001n, false],
+ [0xffffffffffffffffn, -0x80000001n, false],
+ [0x10000000000000000n, -0x80000001n, false],
+ [0x10000000000000001n, -0x80000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x80000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x80000001n, false],
+ [0x800000000000000000000000n, -0x80000001n, false],
+ [0x800000000000000000000001n, -0x80000001n, false],
+ [0xfffffffffffffffffffffffen, -0x80000001n, false],
+ [0xffffffffffffffffffffffffn, -0x80000001n, false],
+ [0x1000000000000000000000000n, -0x80000001n, false],
+ [0x1000000000000000000000001n, -0x80000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x80000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x80000001n, false],
+ [0x80000000000000000000000000000000n, -0x80000001n, false],
+ [0x80000000000000000000000000000001n, -0x80000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000001n, false],
+ [0x100000000000000000000000000000000n, -0x80000001n, false],
+ [0x100000000000000000000000000000001n, -0x80000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000000n, false],
+ [-0x100000000000000000000000000000000n, -0x80000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000000n, false],
+ [-0x80000000000000000000000000000001n, -0x80000000n, false],
+ [-0x80000000000000000000000000000000n, -0x80000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000000n, false],
+ [-0x1000000000000000000000001n, -0x80000000n, false],
+ [-0x1000000000000000000000000n, -0x80000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x80000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x80000000n, false],
+ [-0x800000000000000000000001n, -0x80000000n, false],
+ [-0x800000000000000000000000n, -0x80000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x80000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x80000000n, false],
+ [-0x10000000000000001n, -0x80000000n, false],
+ [-0x10000000000000000n, -0x80000000n, false],
+ [-0xffffffffffffffffn, -0x80000000n, false],
+ [-0xfffffffffffffffen, -0x80000000n, false],
+ [-0x8000000000000001n, -0x80000000n, false],
+ [-0x8000000000000000n, -0x80000000n, false],
+ [-0x7fffffffffffffffn, -0x80000000n, false],
+ [-0x7ffffffffffffffen, -0x80000000n, false],
+ [-0x100000001n, -0x80000000n, false],
+ [-0x100000000n, -0x80000000n, false],
+ [-0xffffffffn, -0x80000000n, false],
+ [-0xfffffffen, -0x80000000n, false],
+ [-0x80000000n, -0x80000000n, true],
+ [-0x7fffffffn, -0x80000000n, false],
+ [-0x7ffffffen, -0x80000000n, false],
+ [0xfffffffen, -0x80000000n, false],
+ [0xffffffffn, -0x80000000n, false],
+ [0x100000000n, -0x80000000n, false],
+ [0x100000001n, -0x80000000n, false],
+ [0x7ffffffffffffffen, -0x80000000n, false],
+ [0x7fffffffffffffffn, -0x80000000n, false],
+ [0x8000000000000000n, -0x80000000n, false],
+ [0x8000000000000001n, -0x80000000n, false],
+ [0xfffffffffffffffen, -0x80000000n, false],
+ [0xffffffffffffffffn, -0x80000000n, false],
+ [0x10000000000000000n, -0x80000000n, false],
+ [0x10000000000000001n, -0x80000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x80000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x80000000n, false],
+ [0x800000000000000000000000n, -0x80000000n, false],
+ [0x800000000000000000000001n, -0x80000000n, false],
+ [0xfffffffffffffffffffffffen, -0x80000000n, false],
+ [0xffffffffffffffffffffffffn, -0x80000000n, false],
+ [0x1000000000000000000000000n, -0x80000000n, false],
+ [0x1000000000000000000000001n, -0x80000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x80000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x80000000n, false],
+ [0x80000000000000000000000000000000n, -0x80000000n, false],
+ [0x80000000000000000000000000000001n, -0x80000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000000n, false],
+ [0x100000000000000000000000000000000n, -0x80000000n, false],
+ [0x100000000000000000000000000000001n, -0x80000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffn, false],
+ [-0x100000000000000000000000000000000n, -0x7fffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffn, false],
+ [-0x80000000000000000000000000000001n, -0x7fffffffn, false],
+ [-0x80000000000000000000000000000000n, -0x7fffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffn, false],
+ [-0x1000000000000000000000001n, -0x7fffffffn, false],
+ [-0x1000000000000000000000000n, -0x7fffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0x7fffffffn, false],
+ [-0x800000000000000000000001n, -0x7fffffffn, false],
+ [-0x800000000000000000000000n, -0x7fffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0x7fffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0x7fffffffn, false],
+ [-0x10000000000000001n, -0x7fffffffn, false],
+ [-0x10000000000000000n, -0x7fffffffn, false],
+ [-0xffffffffffffffffn, -0x7fffffffn, false],
+ [-0xfffffffffffffffen, -0x7fffffffn, false],
+ [-0x8000000000000001n, -0x7fffffffn, false],
+ [-0x8000000000000000n, -0x7fffffffn, false],
+ [-0x7fffffffffffffffn, -0x7fffffffn, false],
+ [-0x7ffffffffffffffen, -0x7fffffffn, false],
+ [-0x100000001n, -0x7fffffffn, false],
+ [-0x100000000n, -0x7fffffffn, false],
+ [-0xffffffffn, -0x7fffffffn, false],
+ [-0xfffffffen, -0x7fffffffn, false],
+ [-0x7fffffffn, -0x7fffffffn, true],
+ [-0x7ffffffen, -0x7fffffffn, false],
+ [0xfffffffen, -0x7fffffffn, false],
+ [0xffffffffn, -0x7fffffffn, false],
+ [0x100000000n, -0x7fffffffn, false],
+ [0x100000001n, -0x7fffffffn, false],
+ [0x7ffffffffffffffen, -0x7fffffffn, false],
+ [0x7fffffffffffffffn, -0x7fffffffn, false],
+ [0x8000000000000000n, -0x7fffffffn, false],
+ [0x8000000000000001n, -0x7fffffffn, false],
+ [0xfffffffffffffffen, -0x7fffffffn, false],
+ [0xffffffffffffffffn, -0x7fffffffn, false],
+ [0x10000000000000000n, -0x7fffffffn, false],
+ [0x10000000000000001n, -0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x800000000000000000000000n, -0x7fffffffn, false],
+ [0x800000000000000000000001n, -0x7fffffffn, false],
+ [0xfffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0xffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x1000000000000000000000000n, -0x7fffffffn, false],
+ [0x1000000000000000000000001n, -0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x80000000000000000000000000000000n, -0x7fffffffn, false],
+ [0x80000000000000000000000000000001n, -0x7fffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffen, false],
+ [-0x100000000000000000000000000000000n, -0x7ffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffen, false],
+ [-0x80000000000000000000000000000001n, -0x7ffffffen, false],
+ [-0x80000000000000000000000000000000n, -0x7ffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffen, false],
+ [-0x1000000000000000000000001n, -0x7ffffffen, false],
+ [-0x1000000000000000000000000n, -0x7ffffffen, false],
+ [-0xffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0x7ffffffen, false],
+ [-0x800000000000000000000001n, -0x7ffffffen, false],
+ [-0x800000000000000000000000n, -0x7ffffffen, false],
+ [-0x7fffffffffffffffffffffffn, -0x7ffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0x7ffffffen, false],
+ [-0x10000000000000001n, -0x7ffffffen, false],
+ [-0x10000000000000000n, -0x7ffffffen, false],
+ [-0xffffffffffffffffn, -0x7ffffffen, false],
+ [-0xfffffffffffffffen, -0x7ffffffen, false],
+ [-0x8000000000000001n, -0x7ffffffen, false],
+ [-0x8000000000000000n, -0x7ffffffen, false],
+ [-0x7fffffffffffffffn, -0x7ffffffen, false],
+ [-0x7ffffffffffffffen, -0x7ffffffen, false],
+ [-0x100000001n, -0x7ffffffen, false],
+ [-0x100000000n, -0x7ffffffen, false],
+ [-0xffffffffn, -0x7ffffffen, false],
+ [-0xfffffffen, -0x7ffffffen, false],
+ [-0x7ffffffen, -0x7ffffffen, true],
+ [0xfffffffen, -0x7ffffffen, false],
+ [0xffffffffn, -0x7ffffffen, false],
+ [0x100000000n, -0x7ffffffen, false],
+ [0x100000001n, -0x7ffffffen, false],
+ [0x7ffffffffffffffen, -0x7ffffffen, false],
+ [0x7fffffffffffffffn, -0x7ffffffen, false],
+ [0x8000000000000000n, -0x7ffffffen, false],
+ [0x8000000000000001n, -0x7ffffffen, false],
+ [0xfffffffffffffffen, -0x7ffffffen, false],
+ [0xffffffffffffffffn, -0x7ffffffen, false],
+ [0x10000000000000000n, -0x7ffffffen, false],
+ [0x10000000000000001n, -0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x800000000000000000000000n, -0x7ffffffen, false],
+ [0x800000000000000000000001n, -0x7ffffffen, false],
+ [0xfffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0xffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x1000000000000000000000000n, -0x7ffffffen, false],
+ [0x1000000000000000000000001n, -0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x80000000000000000000000000000000n, -0x7ffffffen, false],
+ [0x80000000000000000000000000000001n, -0x7ffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffen, false],
+ [-0x100000000000000000000000000000000n, 0xfffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffen, false],
+ [-0x80000000000000000000000000000001n, 0xfffffffen, false],
+ [-0x80000000000000000000000000000000n, 0xfffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xfffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xfffffffen, false],
+ [-0x1000000000000000000000001n, 0xfffffffen, false],
+ [-0x1000000000000000000000000n, 0xfffffffen, false],
+ [-0xffffffffffffffffffffffffn, 0xfffffffen, false],
+ [-0xfffffffffffffffffffffffen, 0xfffffffen, false],
+ [-0x800000000000000000000001n, 0xfffffffen, false],
+ [-0x800000000000000000000000n, 0xfffffffen, false],
+ [-0x7fffffffffffffffffffffffn, 0xfffffffen, false],
+ [-0x7ffffffffffffffffffffffen, 0xfffffffen, false],
+ [-0x10000000000000001n, 0xfffffffen, false],
+ [-0x10000000000000000n, 0xfffffffen, false],
+ [-0xffffffffffffffffn, 0xfffffffen, false],
+ [-0xfffffffffffffffen, 0xfffffffen, false],
+ [-0x8000000000000001n, 0xfffffffen, false],
+ [-0x8000000000000000n, 0xfffffffen, false],
+ [-0x7fffffffffffffffn, 0xfffffffen, false],
+ [-0x7ffffffffffffffen, 0xfffffffen, false],
+ [-0x100000001n, 0xfffffffen, false],
+ [-0x100000000n, 0xfffffffen, false],
+ [-0xffffffffn, 0xfffffffen, false],
+ [-0xfffffffen, 0xfffffffen, false],
+ [0xfffffffen, 0xfffffffen, true],
+ [0xffffffffn, 0xfffffffen, false],
+ [0x100000000n, 0xfffffffen, false],
+ [0x100000001n, 0xfffffffen, false],
+ [0x7ffffffffffffffen, 0xfffffffen, false],
+ [0x7fffffffffffffffn, 0xfffffffen, false],
+ [0x8000000000000000n, 0xfffffffen, false],
+ [0x8000000000000001n, 0xfffffffen, false],
+ [0xfffffffffffffffen, 0xfffffffen, false],
+ [0xffffffffffffffffn, 0xfffffffen, false],
+ [0x10000000000000000n, 0xfffffffen, false],
+ [0x10000000000000001n, 0xfffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0xfffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x800000000000000000000000n, 0xfffffffen, false],
+ [0x800000000000000000000001n, 0xfffffffen, false],
+ [0xfffffffffffffffffffffffen, 0xfffffffen, false],
+ [0xffffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x1000000000000000000000000n, 0xfffffffen, false],
+ [0x1000000000000000000000001n, 0xfffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xfffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x80000000000000000000000000000000n, 0xfffffffen, false],
+ [0x80000000000000000000000000000001n, 0xfffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffn, false],
+ [-0x100000000000000000000000000000000n, 0xffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffn, false],
+ [-0x80000000000000000000000000000001n, 0xffffffffn, false],
+ [-0x80000000000000000000000000000000n, 0xffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xffffffffn, false],
+ [-0x1000000000000000000000001n, 0xffffffffn, false],
+ [-0x1000000000000000000000000n, 0xffffffffn, false],
+ [-0xffffffffffffffffffffffffn, 0xffffffffn, false],
+ [-0xfffffffffffffffffffffffen, 0xffffffffn, false],
+ [-0x800000000000000000000001n, 0xffffffffn, false],
+ [-0x800000000000000000000000n, 0xffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, 0xffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, 0xffffffffn, false],
+ [-0x10000000000000001n, 0xffffffffn, false],
+ [-0x10000000000000000n, 0xffffffffn, false],
+ [-0xffffffffffffffffn, 0xffffffffn, false],
+ [-0xfffffffffffffffen, 0xffffffffn, false],
+ [-0x8000000000000001n, 0xffffffffn, false],
+ [-0x8000000000000000n, 0xffffffffn, false],
+ [-0x7fffffffffffffffn, 0xffffffffn, false],
+ [-0x7ffffffffffffffen, 0xffffffffn, false],
+ [-0x100000001n, 0xffffffffn, false],
+ [-0x100000000n, 0xffffffffn, false],
+ [-0xffffffffn, 0xffffffffn, false],
+ [-0xfffffffen, 0xffffffffn, false],
+ [0xffffffffn, 0xffffffffn, true],
+ [0x100000000n, 0xffffffffn, false],
+ [0x100000001n, 0xffffffffn, false],
+ [0x7ffffffffffffffen, 0xffffffffn, false],
+ [0x7fffffffffffffffn, 0xffffffffn, false],
+ [0x8000000000000000n, 0xffffffffn, false],
+ [0x8000000000000001n, 0xffffffffn, false],
+ [0xfffffffffffffffen, 0xffffffffn, false],
+ [0xffffffffffffffffn, 0xffffffffn, false],
+ [0x10000000000000000n, 0xffffffffn, false],
+ [0x10000000000000001n, 0xffffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0xffffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x800000000000000000000000n, 0xffffffffn, false],
+ [0x800000000000000000000001n, 0xffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0xffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x1000000000000000000000000n, 0xffffffffn, false],
+ [0x1000000000000000000000001n, 0xffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x80000000000000000000000000000000n, 0xffffffffn, false],
+ [0x80000000000000000000000000000001n, 0xffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x100000000000000000000000000000000n, 0xffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x100000000n, false],
+ [-0x100000000000000000000000000000000n, 0x100000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000000n, false],
+ [-0x80000000000000000000000000000001n, 0x100000000n, false],
+ [-0x80000000000000000000000000000000n, 0x100000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x100000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x100000000n, false],
+ [-0x1000000000000000000000001n, 0x100000000n, false],
+ [-0x1000000000000000000000000n, 0x100000000n, false],
+ [-0xffffffffffffffffffffffffn, 0x100000000n, false],
+ [-0xfffffffffffffffffffffffen, 0x100000000n, false],
+ [-0x800000000000000000000001n, 0x100000000n, false],
+ [-0x800000000000000000000000n, 0x100000000n, false],
+ [-0x7fffffffffffffffffffffffn, 0x100000000n, false],
+ [-0x7ffffffffffffffffffffffen, 0x100000000n, false],
+ [-0x10000000000000001n, 0x100000000n, false],
+ [-0x10000000000000000n, 0x100000000n, false],
+ [-0xffffffffffffffffn, 0x100000000n, false],
+ [-0xfffffffffffffffen, 0x100000000n, false],
+ [-0x8000000000000001n, 0x100000000n, false],
+ [-0x8000000000000000n, 0x100000000n, false],
+ [-0x7fffffffffffffffn, 0x100000000n, false],
+ [-0x7ffffffffffffffen, 0x100000000n, false],
+ [-0x100000001n, 0x100000000n, false],
+ [-0x100000000n, 0x100000000n, false],
+ [-0xffffffffn, 0x100000000n, false],
+ [-0xfffffffen, 0x100000000n, false],
+ [0x100000000n, 0x100000000n, true],
+ [0x100000001n, 0x100000000n, false],
+ [0x7ffffffffffffffen, 0x100000000n, false],
+ [0x7fffffffffffffffn, 0x100000000n, false],
+ [0x8000000000000000n, 0x100000000n, false],
+ [0x8000000000000001n, 0x100000000n, false],
+ [0xfffffffffffffffen, 0x100000000n, false],
+ [0xffffffffffffffffn, 0x100000000n, false],
+ [0x10000000000000000n, 0x100000000n, false],
+ [0x10000000000000001n, 0x100000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x100000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x100000000n, false],
+ [0x800000000000000000000000n, 0x100000000n, false],
+ [0x800000000000000000000001n, 0x100000000n, false],
+ [0xfffffffffffffffffffffffen, 0x100000000n, false],
+ [0xffffffffffffffffffffffffn, 0x100000000n, false],
+ [0x1000000000000000000000000n, 0x100000000n, false],
+ [0x1000000000000000000000001n, 0x100000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x100000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x100000000n, false],
+ [0x80000000000000000000000000000000n, 0x100000000n, false],
+ [0x80000000000000000000000000000001n, 0x100000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x100000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x100000000n, false],
+ [0x100000000000000000000000000000000n, 0x100000000n, false],
+ [0x100000000000000000000000000000001n, 0x100000000n, false],
+ [-0x100000000000000000000000000000001n, 0x100000001n, false],
+ [-0x100000000000000000000000000000000n, 0x100000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000001n, false],
+ [-0x80000000000000000000000000000001n, 0x100000001n, false],
+ [-0x80000000000000000000000000000000n, 0x100000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x100000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x100000001n, false],
+ [-0x1000000000000000000000001n, 0x100000001n, false],
+ [-0x1000000000000000000000000n, 0x100000001n, false],
+ [-0xffffffffffffffffffffffffn, 0x100000001n, false],
+ [-0xfffffffffffffffffffffffen, 0x100000001n, false],
+ [-0x800000000000000000000001n, 0x100000001n, false],
+ [-0x800000000000000000000000n, 0x100000001n, false],
+ [-0x7fffffffffffffffffffffffn, 0x100000001n, false],
+ [-0x7ffffffffffffffffffffffen, 0x100000001n, false],
+ [-0x10000000000000001n, 0x100000001n, false],
+ [-0x10000000000000000n, 0x100000001n, false],
+ [-0xffffffffffffffffn, 0x100000001n, false],
+ [-0xfffffffffffffffen, 0x100000001n, false],
+ [-0x8000000000000001n, 0x100000001n, false],
+ [-0x8000000000000000n, 0x100000001n, false],
+ [-0x7fffffffffffffffn, 0x100000001n, false],
+ [-0x7ffffffffffffffen, 0x100000001n, false],
+ [-0x100000001n, 0x100000001n, false],
+ [-0x100000000n, 0x100000001n, false],
+ [-0xffffffffn, 0x100000001n, false],
+ [-0xfffffffen, 0x100000001n, false],
+ [0x100000001n, 0x100000001n, true],
+ [0x7ffffffffffffffen, 0x100000001n, false],
+ [0x7fffffffffffffffn, 0x100000001n, false],
+ [0x8000000000000000n, 0x100000001n, false],
+ [0x8000000000000001n, 0x100000001n, false],
+ [0xfffffffffffffffen, 0x100000001n, false],
+ [0xffffffffffffffffn, 0x100000001n, false],
+ [0x10000000000000000n, 0x100000001n, false],
+ [0x10000000000000001n, 0x100000001n, false],
+ [0x7ffffffffffffffffffffffen, 0x100000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x100000001n, false],
+ [0x800000000000000000000000n, 0x100000001n, false],
+ [0x800000000000000000000001n, 0x100000001n, false],
+ [0xfffffffffffffffffffffffen, 0x100000001n, false],
+ [0xffffffffffffffffffffffffn, 0x100000001n, false],
+ [0x1000000000000000000000000n, 0x100000001n, false],
+ [0x1000000000000000000000001n, 0x100000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x100000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x100000001n, false],
+ [0x80000000000000000000000000000000n, 0x100000001n, false],
+ [0x80000000000000000000000000000001n, 0x100000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x100000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x100000001n, false],
+ [0x100000000000000000000000000000000n, 0x100000001n, false],
+ [0x100000000000000000000000000000001n, 0x100000001n, false],
+ [-0x100000000000000000000000000000001n, -0x100000001n, false],
+ [-0x100000000000000000000000000000000n, -0x100000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000001n, false],
+ [-0x80000000000000000000000000000001n, -0x100000001n, false],
+ [-0x80000000000000000000000000000000n, -0x100000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x100000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x100000001n, false],
+ [-0x1000000000000000000000001n, -0x100000001n, false],
+ [-0x1000000000000000000000000n, -0x100000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x100000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x100000001n, false],
+ [-0x800000000000000000000001n, -0x100000001n, false],
+ [-0x800000000000000000000000n, -0x100000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x100000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x100000001n, false],
+ [-0x10000000000000001n, -0x100000001n, false],
+ [-0x10000000000000000n, -0x100000001n, false],
+ [-0xffffffffffffffffn, -0x100000001n, false],
+ [-0xfffffffffffffffen, -0x100000001n, false],
+ [-0x8000000000000001n, -0x100000001n, false],
+ [-0x8000000000000000n, -0x100000001n, false],
+ [-0x7fffffffffffffffn, -0x100000001n, false],
+ [-0x7ffffffffffffffen, -0x100000001n, false],
+ [-0x100000001n, -0x100000001n, true],
+ [-0x100000000n, -0x100000001n, false],
+ [-0xffffffffn, -0x100000001n, false],
+ [-0xfffffffen, -0x100000001n, false],
+ [0x7ffffffffffffffen, -0x100000001n, false],
+ [0x7fffffffffffffffn, -0x100000001n, false],
+ [0x8000000000000000n, -0x100000001n, false],
+ [0x8000000000000001n, -0x100000001n, false],
+ [0xfffffffffffffffen, -0x100000001n, false],
+ [0xffffffffffffffffn, -0x100000001n, false],
+ [0x10000000000000000n, -0x100000001n, false],
+ [0x10000000000000001n, -0x100000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x100000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x100000001n, false],
+ [0x800000000000000000000000n, -0x100000001n, false],
+ [0x800000000000000000000001n, -0x100000001n, false],
+ [0xfffffffffffffffffffffffen, -0x100000001n, false],
+ [0xffffffffffffffffffffffffn, -0x100000001n, false],
+ [0x1000000000000000000000000n, -0x100000001n, false],
+ [0x1000000000000000000000001n, -0x100000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x100000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x100000001n, false],
+ [0x80000000000000000000000000000000n, -0x100000001n, false],
+ [0x80000000000000000000000000000001n, -0x100000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x100000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x100000001n, false],
+ [0x100000000000000000000000000000000n, -0x100000001n, false],
+ [0x100000000000000000000000000000001n, -0x100000001n, false],
+ [-0x100000000000000000000000000000001n, -0x100000000n, false],
+ [-0x100000000000000000000000000000000n, -0x100000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000000n, false],
+ [-0x80000000000000000000000000000001n, -0x100000000n, false],
+ [-0x80000000000000000000000000000000n, -0x100000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x100000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x100000000n, false],
+ [-0x1000000000000000000000001n, -0x100000000n, false],
+ [-0x1000000000000000000000000n, -0x100000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x100000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x100000000n, false],
+ [-0x800000000000000000000001n, -0x100000000n, false],
+ [-0x800000000000000000000000n, -0x100000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x100000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x100000000n, false],
+ [-0x10000000000000001n, -0x100000000n, false],
+ [-0x10000000000000000n, -0x100000000n, false],
+ [-0xffffffffffffffffn, -0x100000000n, false],
+ [-0xfffffffffffffffen, -0x100000000n, false],
+ [-0x8000000000000001n, -0x100000000n, false],
+ [-0x8000000000000000n, -0x100000000n, false],
+ [-0x7fffffffffffffffn, -0x100000000n, false],
+ [-0x7ffffffffffffffen, -0x100000000n, false],
+ [-0x100000000n, -0x100000000n, true],
+ [-0xffffffffn, -0x100000000n, false],
+ [-0xfffffffen, -0x100000000n, false],
+ [0x7ffffffffffffffen, -0x100000000n, false],
+ [0x7fffffffffffffffn, -0x100000000n, false],
+ [0x8000000000000000n, -0x100000000n, false],
+ [0x8000000000000001n, -0x100000000n, false],
+ [0xfffffffffffffffen, -0x100000000n, false],
+ [0xffffffffffffffffn, -0x100000000n, false],
+ [0x10000000000000000n, -0x100000000n, false],
+ [0x10000000000000001n, -0x100000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x100000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x100000000n, false],
+ [0x800000000000000000000000n, -0x100000000n, false],
+ [0x800000000000000000000001n, -0x100000000n, false],
+ [0xfffffffffffffffffffffffen, -0x100000000n, false],
+ [0xffffffffffffffffffffffffn, -0x100000000n, false],
+ [0x1000000000000000000000000n, -0x100000000n, false],
+ [0x1000000000000000000000001n, -0x100000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x100000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x100000000n, false],
+ [0x80000000000000000000000000000000n, -0x100000000n, false],
+ [0x80000000000000000000000000000001n, -0x100000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x100000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x100000000n, false],
+ [0x100000000000000000000000000000000n, -0x100000000n, false],
+ [0x100000000000000000000000000000001n, -0x100000000n, false],
+ [-0x100000000000000000000000000000001n, -0xffffffffn, false],
+ [-0x100000000000000000000000000000000n, -0xffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffn, false],
+ [-0x80000000000000000000000000000001n, -0xffffffffn, false],
+ [-0x80000000000000000000000000000000n, -0xffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xffffffffn, false],
+ [-0x1000000000000000000000001n, -0xffffffffn, false],
+ [-0x1000000000000000000000000n, -0xffffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0xffffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0xffffffffn, false],
+ [-0x800000000000000000000001n, -0xffffffffn, false],
+ [-0x800000000000000000000000n, -0xffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0xffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0xffffffffn, false],
+ [-0x10000000000000001n, -0xffffffffn, false],
+ [-0x10000000000000000n, -0xffffffffn, false],
+ [-0xffffffffffffffffn, -0xffffffffn, false],
+ [-0xfffffffffffffffen, -0xffffffffn, false],
+ [-0x8000000000000001n, -0xffffffffn, false],
+ [-0x8000000000000000n, -0xffffffffn, false],
+ [-0x7fffffffffffffffn, -0xffffffffn, false],
+ [-0x7ffffffffffffffen, -0xffffffffn, false],
+ [-0xffffffffn, -0xffffffffn, true],
+ [-0xfffffffen, -0xffffffffn, false],
+ [0x7ffffffffffffffen, -0xffffffffn, false],
+ [0x7fffffffffffffffn, -0xffffffffn, false],
+ [0x8000000000000000n, -0xffffffffn, false],
+ [0x8000000000000001n, -0xffffffffn, false],
+ [0xfffffffffffffffen, -0xffffffffn, false],
+ [0xffffffffffffffffn, -0xffffffffn, false],
+ [0x10000000000000000n, -0xffffffffn, false],
+ [0x10000000000000001n, -0xffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0xffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x800000000000000000000000n, -0xffffffffn, false],
+ [0x800000000000000000000001n, -0xffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0xffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x1000000000000000000000000n, -0xffffffffn, false],
+ [0x1000000000000000000000001n, -0xffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x80000000000000000000000000000000n, -0xffffffffn, false],
+ [0x80000000000000000000000000000001n, -0xffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x100000000000000000000000000000000n, -0xffffffffn, false],
+ [0x100000000000000000000000000000001n, -0xffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0xfffffffen, false],
+ [-0x100000000000000000000000000000000n, -0xfffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0xfffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffen, false],
+ [-0x80000000000000000000000000000001n, -0xfffffffen, false],
+ [-0x80000000000000000000000000000000n, -0xfffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xfffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xfffffffen, false],
+ [-0x1000000000000000000000001n, -0xfffffffen, false],
+ [-0x1000000000000000000000000n, -0xfffffffen, false],
+ [-0xffffffffffffffffffffffffn, -0xfffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0xfffffffen, false],
+ [-0x800000000000000000000001n, -0xfffffffen, false],
+ [-0x800000000000000000000000n, -0xfffffffen, false],
+ [-0x7fffffffffffffffffffffffn, -0xfffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0xfffffffen, false],
+ [-0x10000000000000001n, -0xfffffffen, false],
+ [-0x10000000000000000n, -0xfffffffen, false],
+ [-0xffffffffffffffffn, -0xfffffffen, false],
+ [-0xfffffffffffffffen, -0xfffffffen, false],
+ [-0x8000000000000001n, -0xfffffffen, false],
+ [-0x8000000000000000n, -0xfffffffen, false],
+ [-0x7fffffffffffffffn, -0xfffffffen, false],
+ [-0x7ffffffffffffffen, -0xfffffffen, false],
+ [-0xfffffffen, -0xfffffffen, true],
+ [0x7ffffffffffffffen, -0xfffffffen, false],
+ [0x7fffffffffffffffn, -0xfffffffen, false],
+ [0x8000000000000000n, -0xfffffffen, false],
+ [0x8000000000000001n, -0xfffffffen, false],
+ [0xfffffffffffffffen, -0xfffffffen, false],
+ [0xffffffffffffffffn, -0xfffffffen, false],
+ [0x10000000000000000n, -0xfffffffen, false],
+ [0x10000000000000001n, -0xfffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0xfffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x800000000000000000000000n, -0xfffffffen, false],
+ [0x800000000000000000000001n, -0xfffffffen, false],
+ [0xfffffffffffffffffffffffen, -0xfffffffen, false],
+ [0xffffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x1000000000000000000000000n, -0xfffffffen, false],
+ [0x1000000000000000000000001n, -0xfffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xfffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x80000000000000000000000000000000n, -0xfffffffen, false],
+ [0x80000000000000000000000000000001n, -0xfffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xfffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x100000000000000000000000000000000n, -0xfffffffen, false],
+ [0x100000000000000000000000000000001n, -0xfffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [-0x1000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x1000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [-0x800000000000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x800000000000000000000000n, 0x7ffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, false],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, false],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, false],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, false],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, true],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x8000000000000000n, 0x7ffffffffffffffen, false],
+ [0x8000000000000001n, 0x7ffffffffffffffen, false],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x10000000000000000n, 0x7ffffffffffffffen, false],
+ [0x10000000000000001n, 0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x800000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x800000000000000000000001n, 0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [-0x1000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x1000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [-0x800000000000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x800000000000000000000000n, 0x7fffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, false],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, false],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, false],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, false],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, true],
+ [0x8000000000000000n, 0x7fffffffffffffffn, false],
+ [0x8000000000000001n, 0x7fffffffffffffffn, false],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x10000000000000000n, 0x7fffffffffffffffn, false],
+ [0x10000000000000001n, 0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x800000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x800000000000000000000001n, 0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x1000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x8000000000000000n, false],
+ [-0x100000000000000000000000000000000n, 0x8000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [-0x80000000000000000000000000000001n, 0x8000000000000000n, false],
+ [-0x80000000000000000000000000000000n, 0x8000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [-0x1000000000000000000000001n, 0x8000000000000000n, false],
+ [-0x1000000000000000000000000n, 0x8000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [-0x800000000000000000000001n, 0x8000000000000000n, false],
+ [-0x800000000000000000000000n, 0x8000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [-0x10000000000000001n, 0x8000000000000000n, false],
+ [-0x10000000000000000n, 0x8000000000000000n, false],
+ [-0xffffffffffffffffn, 0x8000000000000000n, false],
+ [-0xfffffffffffffffen, 0x8000000000000000n, false],
+ [-0x8000000000000001n, 0x8000000000000000n, false],
+ [-0x8000000000000000n, 0x8000000000000000n, false],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, false],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, false],
+ [0x8000000000000000n, 0x8000000000000000n, true],
+ [0x8000000000000001n, 0x8000000000000000n, false],
+ [0xfffffffffffffffen, 0x8000000000000000n, false],
+ [0xffffffffffffffffn, 0x8000000000000000n, false],
+ [0x10000000000000000n, 0x8000000000000000n, false],
+ [0x10000000000000001n, 0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x800000000000000000000000n, 0x8000000000000000n, false],
+ [0x800000000000000000000001n, 0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x1000000000000000000000000n, 0x8000000000000000n, false],
+ [0x1000000000000000000000001n, 0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x8000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x8000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x8000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x8000000000000001n, false],
+ [-0x100000000000000000000000000000000n, 0x8000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [-0x80000000000000000000000000000001n, 0x8000000000000001n, false],
+ [-0x80000000000000000000000000000000n, 0x8000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [-0x1000000000000000000000001n, 0x8000000000000001n, false],
+ [-0x1000000000000000000000000n, 0x8000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [-0x800000000000000000000001n, 0x8000000000000001n, false],
+ [-0x800000000000000000000000n, 0x8000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [-0x10000000000000001n, 0x8000000000000001n, false],
+ [-0x10000000000000000n, 0x8000000000000001n, false],
+ [-0xffffffffffffffffn, 0x8000000000000001n, false],
+ [-0xfffffffffffffffen, 0x8000000000000001n, false],
+ [-0x8000000000000001n, 0x8000000000000001n, false],
+ [-0x8000000000000000n, 0x8000000000000001n, false],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, false],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, false],
+ [0x8000000000000001n, 0x8000000000000001n, true],
+ [0xfffffffffffffffen, 0x8000000000000001n, false],
+ [0xffffffffffffffffn, 0x8000000000000001n, false],
+ [0x10000000000000000n, 0x8000000000000001n, false],
+ [0x10000000000000001n, 0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x800000000000000000000000n, 0x8000000000000001n, false],
+ [0x800000000000000000000001n, 0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x1000000000000000000000000n, 0x8000000000000001n, false],
+ [0x1000000000000000000000001n, 0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x8000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x8000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x8000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x8000000000000001n, false],
+ [-0x100000000000000000000000000000000n, -0x8000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [-0x80000000000000000000000000000001n, -0x8000000000000001n, false],
+ [-0x80000000000000000000000000000000n, -0x8000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [-0x1000000000000000000000001n, -0x8000000000000001n, false],
+ [-0x1000000000000000000000000n, -0x8000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [-0x800000000000000000000001n, -0x8000000000000001n, false],
+ [-0x800000000000000000000000n, -0x8000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [-0x10000000000000001n, -0x8000000000000001n, false],
+ [-0x10000000000000000n, -0x8000000000000001n, false],
+ [-0xffffffffffffffffn, -0x8000000000000001n, false],
+ [-0xfffffffffffffffen, -0x8000000000000001n, false],
+ [-0x8000000000000001n, -0x8000000000000001n, true],
+ [-0x8000000000000000n, -0x8000000000000001n, false],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, false],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, false],
+ [0xfffffffffffffffen, -0x8000000000000001n, false],
+ [0xffffffffffffffffn, -0x8000000000000001n, false],
+ [0x10000000000000000n, -0x8000000000000001n, false],
+ [0x10000000000000001n, -0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x800000000000000000000000n, -0x8000000000000001n, false],
+ [0x800000000000000000000001n, -0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x1000000000000000000000000n, -0x8000000000000001n, false],
+ [0x1000000000000000000000001n, -0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x8000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x8000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x8000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x8000000000000000n, false],
+ [-0x100000000000000000000000000000000n, -0x8000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [-0x80000000000000000000000000000001n, -0x8000000000000000n, false],
+ [-0x80000000000000000000000000000000n, -0x8000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [-0x1000000000000000000000001n, -0x8000000000000000n, false],
+ [-0x1000000000000000000000000n, -0x8000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [-0x800000000000000000000001n, -0x8000000000000000n, false],
+ [-0x800000000000000000000000n, -0x8000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [-0x10000000000000001n, -0x8000000000000000n, false],
+ [-0x10000000000000000n, -0x8000000000000000n, false],
+ [-0xffffffffffffffffn, -0x8000000000000000n, false],
+ [-0xfffffffffffffffen, -0x8000000000000000n, false],
+ [-0x8000000000000000n, -0x8000000000000000n, true],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, false],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, false],
+ [0xfffffffffffffffen, -0x8000000000000000n, false],
+ [0xffffffffffffffffn, -0x8000000000000000n, false],
+ [0x10000000000000000n, -0x8000000000000000n, false],
+ [0x10000000000000001n, -0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x800000000000000000000000n, -0x8000000000000000n, false],
+ [0x800000000000000000000001n, -0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x1000000000000000000000000n, -0x8000000000000000n, false],
+ [0x1000000000000000000000001n, -0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x8000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x8000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x8000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [-0x1000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [-0x1000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [-0x800000000000000000000001n, -0x7fffffffffffffffn, false],
+ [-0x800000000000000000000000n, -0x7fffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, false],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, false],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, false],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, true],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x10000000000000000n, -0x7fffffffffffffffn, false],
+ [0x10000000000000001n, -0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x800000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x800000000000000000000001n, -0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [-0x1000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [-0x1000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [-0x800000000000000000000001n, -0x7ffffffffffffffen, false],
+ [-0x800000000000000000000000n, -0x7ffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, false],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, false],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, false],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, true],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x10000000000000000n, -0x7ffffffffffffffen, false],
+ [0x10000000000000001n, -0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x800000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x800000000000000000000001n, -0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, 0xfffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, 0xfffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, 0xfffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [-0x1000000000000000000000001n, 0xfffffffffffffffen, false],
+ [-0x1000000000000000000000000n, 0xfffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [-0x800000000000000000000001n, 0xfffffffffffffffen, false],
+ [-0x800000000000000000000000n, 0xfffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [-0x10000000000000001n, 0xfffffffffffffffen, false],
+ [-0x10000000000000000n, 0xfffffffffffffffen, false],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, false],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, false],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, true],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x10000000000000000n, 0xfffffffffffffffen, false],
+ [0x10000000000000001n, 0xfffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x800000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x800000000000000000000001n, 0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0xfffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, 0xffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, 0xffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, 0xffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [-0x1000000000000000000000001n, 0xffffffffffffffffn, false],
+ [-0x1000000000000000000000000n, 0xffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [-0x800000000000000000000001n, 0xffffffffffffffffn, false],
+ [-0x800000000000000000000000n, 0xffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [-0x10000000000000001n, 0xffffffffffffffffn, false],
+ [-0x10000000000000000n, 0xffffffffffffffffn, false],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, false],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, false],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, true],
+ [0x10000000000000000n, 0xffffffffffffffffn, false],
+ [0x10000000000000001n, 0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x800000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x800000000000000000000001n, 0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x1000000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x10000000000000000n, false],
+ [-0x100000000000000000000000000000000n, 0x10000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [-0x80000000000000000000000000000001n, 0x10000000000000000n, false],
+ [-0x80000000000000000000000000000000n, 0x10000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [-0x1000000000000000000000001n, 0x10000000000000000n, false],
+ [-0x1000000000000000000000000n, 0x10000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [-0x800000000000000000000001n, 0x10000000000000000n, false],
+ [-0x800000000000000000000000n, 0x10000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [-0x10000000000000001n, 0x10000000000000000n, false],
+ [-0x10000000000000000n, 0x10000000000000000n, false],
+ [-0xffffffffffffffffn, 0x10000000000000000n, false],
+ [-0xfffffffffffffffen, 0x10000000000000000n, false],
+ [0x10000000000000000n, 0x10000000000000000n, true],
+ [0x10000000000000001n, 0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x800000000000000000000000n, 0x10000000000000000n, false],
+ [0x800000000000000000000001n, 0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x1000000000000000000000000n, 0x10000000000000000n, false],
+ [0x1000000000000000000000001n, 0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x10000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x10000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x10000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x10000000000000001n, false],
+ [-0x100000000000000000000000000000000n, 0x10000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [-0x80000000000000000000000000000001n, 0x10000000000000001n, false],
+ [-0x80000000000000000000000000000000n, 0x10000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [-0x1000000000000000000000001n, 0x10000000000000001n, false],
+ [-0x1000000000000000000000000n, 0x10000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [-0x800000000000000000000001n, 0x10000000000000001n, false],
+ [-0x800000000000000000000000n, 0x10000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [-0x10000000000000001n, 0x10000000000000001n, false],
+ [-0x10000000000000000n, 0x10000000000000001n, false],
+ [-0xffffffffffffffffn, 0x10000000000000001n, false],
+ [-0xfffffffffffffffen, 0x10000000000000001n, false],
+ [0x10000000000000001n, 0x10000000000000001n, true],
+ [0x7ffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x800000000000000000000000n, 0x10000000000000001n, false],
+ [0x800000000000000000000001n, 0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x1000000000000000000000000n, 0x10000000000000001n, false],
+ [0x1000000000000000000000001n, 0x10000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x10000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x10000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x10000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x10000000000000001n, false],
+ [-0x100000000000000000000000000000000n, -0x10000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [-0x80000000000000000000000000000001n, -0x10000000000000001n, false],
+ [-0x80000000000000000000000000000000n, -0x10000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [-0x1000000000000000000000001n, -0x10000000000000001n, false],
+ [-0x1000000000000000000000000n, -0x10000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [-0x800000000000000000000001n, -0x10000000000000001n, false],
+ [-0x800000000000000000000000n, -0x10000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [-0x10000000000000001n, -0x10000000000000001n, true],
+ [-0x10000000000000000n, -0x10000000000000001n, false],
+ [-0xffffffffffffffffn, -0x10000000000000001n, false],
+ [-0xfffffffffffffffen, -0x10000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x800000000000000000000000n, -0x10000000000000001n, false],
+ [0x800000000000000000000001n, -0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x1000000000000000000000000n, -0x10000000000000001n, false],
+ [0x1000000000000000000000001n, -0x10000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x10000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x10000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x10000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x10000000000000000n, false],
+ [-0x100000000000000000000000000000000n, -0x10000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [-0x80000000000000000000000000000001n, -0x10000000000000000n, false],
+ [-0x80000000000000000000000000000000n, -0x10000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [-0x1000000000000000000000001n, -0x10000000000000000n, false],
+ [-0x1000000000000000000000000n, -0x10000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [-0x800000000000000000000001n, -0x10000000000000000n, false],
+ [-0x800000000000000000000000n, -0x10000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [-0x10000000000000000n, -0x10000000000000000n, true],
+ [-0xffffffffffffffffn, -0x10000000000000000n, false],
+ [-0xfffffffffffffffen, -0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x800000000000000000000000n, -0x10000000000000000n, false],
+ [0x800000000000000000000001n, -0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x1000000000000000000000000n, -0x10000000000000000n, false],
+ [0x1000000000000000000000001n, -0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x10000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x10000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x10000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0xffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, -0xffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, -0xffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, -0xffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [-0x1000000000000000000000001n, -0xffffffffffffffffn, false],
+ [-0x1000000000000000000000000n, -0xffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [-0x800000000000000000000001n, -0xffffffffffffffffn, false],
+ [-0x800000000000000000000000n, -0xffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, true],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x800000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x800000000000000000000001n, -0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0xffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0xfffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, -0xfffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, -0xfffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, -0xfffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [-0x1000000000000000000000001n, -0xfffffffffffffffen, false],
+ [-0x1000000000000000000000000n, -0xfffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [-0x800000000000000000000001n, -0xfffffffffffffffen, false],
+ [-0x800000000000000000000000n, -0xfffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x800000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x800000000000000000000001n, -0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0xfffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0xfffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [-0x800000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [-0x800000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x800000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x800000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [-0x800000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [-0x800000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [0x800000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x800000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x800000000000000000000000n, false],
+ [-0x100000000000000000000000000000000n, 0x800000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [-0x80000000000000000000000000000001n, 0x800000000000000000000000n, false],
+ [-0x80000000000000000000000000000000n, 0x800000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [-0x1000000000000000000000001n, 0x800000000000000000000000n, false],
+ [-0x1000000000000000000000000n, 0x800000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [-0x800000000000000000000001n, 0x800000000000000000000000n, false],
+ [-0x800000000000000000000000n, 0x800000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [0x800000000000000000000000n, 0x800000000000000000000000n, true],
+ [0x800000000000000000000001n, 0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [0x1000000000000000000000000n, 0x800000000000000000000000n, false],
+ [0x1000000000000000000000001n, 0x800000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x800000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x800000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, 0x800000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [-0x80000000000000000000000000000001n, 0x800000000000000000000001n, false],
+ [-0x80000000000000000000000000000000n, 0x800000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [-0x1000000000000000000000001n, 0x800000000000000000000001n, false],
+ [-0x1000000000000000000000000n, 0x800000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [-0x800000000000000000000001n, 0x800000000000000000000001n, false],
+ [-0x800000000000000000000000n, 0x800000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [0x800000000000000000000001n, 0x800000000000000000000001n, true],
+ [0xfffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [0x1000000000000000000000000n, 0x800000000000000000000001n, false],
+ [0x1000000000000000000000001n, 0x800000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x800000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x800000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x800000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, -0x800000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [-0x80000000000000000000000000000001n, -0x800000000000000000000001n, false],
+ [-0x80000000000000000000000000000000n, -0x800000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [-0x1000000000000000000000001n, -0x800000000000000000000001n, false],
+ [-0x1000000000000000000000000n, -0x800000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [-0x800000000000000000000001n, -0x800000000000000000000001n, true],
+ [-0x800000000000000000000000n, -0x800000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x1000000000000000000000000n, -0x800000000000000000000001n, false],
+ [0x1000000000000000000000001n, -0x800000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x800000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x800000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x800000000000000000000000n, false],
+ [-0x100000000000000000000000000000000n, -0x800000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [-0x80000000000000000000000000000001n, -0x800000000000000000000000n, false],
+ [-0x80000000000000000000000000000000n, -0x800000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [-0x1000000000000000000000001n, -0x800000000000000000000000n, false],
+ [-0x1000000000000000000000000n, -0x800000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [-0x800000000000000000000000n, -0x800000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x1000000000000000000000000n, -0x800000000000000000000000n, false],
+ [0x1000000000000000000000001n, -0x800000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x800000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, true],
+ [0xfffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [0xffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [0x1000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [-0x100000000000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, false],
+ [-0x80000000000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [-0x80000000000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, false],
+ [-0x1000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [-0x1000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, 0x1000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, 0x1000000000000000000000000n, false],
+ [0x1000000000000000000000000n, 0x1000000000000000000000000n, true],
+ [0x1000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, 0x1000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, false],
+ [-0x80000000000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [-0x80000000000000000000000000000000n, 0x1000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, false],
+ [-0x1000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [-0x1000000000000000000000000n, 0x1000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, 0x1000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, 0x1000000000000000000000001n, false],
+ [0x1000000000000000000000001n, 0x1000000000000000000000001n, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [-0x80000000000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x80000000000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [-0x1000000000000000000000001n, -0x1000000000000000000000001n, true],
+ [-0x1000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x1000000000000000000000000n, false],
+ [-0x100000000000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [-0x80000000000000000000000000000001n, -0x1000000000000000000000000n, false],
+ [-0x80000000000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [-0x1000000000000000000000000n, -0x1000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x1000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x1000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x80000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000000n, 0x80000000000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000000n, false],
+ [-0x80000000000000000000000000000001n, 0x80000000000000000000000000000000n, false],
+ [-0x80000000000000000000000000000000n, 0x80000000000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x80000000000000000000000000000000n, true],
+ [0x80000000000000000000000000000001n, 0x80000000000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x80000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x80000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, 0x80000000000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000001n, false],
+ [-0x80000000000000000000000000000001n, 0x80000000000000000000000000000001n, false],
+ [-0x80000000000000000000000000000000n, 0x80000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x80000000000000000000000000000001n, true],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x80000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [-0x80000000000000000000000000000001n, -0x80000000000000000000000000000001n, true],
+ [-0x80000000000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [-0x80000000000000000000000000000000n, -0x80000000000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, true],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x100000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000000n, 0x100000000000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [0x100000000000000000000000000000001n, 0x100000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x100000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, 0x100000000000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [-0x100000000000000000000000000000001n, -0x100000000000000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, -0x100000000000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, true],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs == rhs, expected);
+ assertEq(rhs == lhs, expected);
+
+ assertEq(lhs === rhs, expected);
+ assertEq(rhs === lhs, expected);
+
+ assertEq(lhs != rhs, !expected);
+ assertEq(rhs != lhs, !expected);
+
+ assertEq(lhs !== rhs, !expected);
+ assertEq(rhs !== lhs, !expected);
+
+ assertEq(!expected || lhs <= rhs, true);
+ assertEq(!expected || rhs >= lhs, true);
+ }
+}
+
+for (let i = 0; i < 5; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-cmp-relational.js b/js/src/jit-test/tests/bigint/bigint-cmp-relational.js
new file mode 100644
index 0000000000..71daf29644
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-cmp-relational.js
@@ -0,0 +1,4779 @@
+const tests = [
+ [-0x100000000000000000000000000000001n, -2n, true],
+ [-0x100000000000000000000000000000000n, -2n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -2n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -2n, true],
+ [-0x80000000000000000000000000000001n, -2n, true],
+ [-0x80000000000000000000000000000000n, -2n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -2n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -2n, true],
+ [-0x1000000000000000000000001n, -2n, true],
+ [-0x1000000000000000000000000n, -2n, true],
+ [-0xffffffffffffffffffffffffn, -2n, true],
+ [-0xfffffffffffffffffffffffen, -2n, true],
+ [-0x800000000000000000000001n, -2n, true],
+ [-0x800000000000000000000000n, -2n, true],
+ [-0x7fffffffffffffffffffffffn, -2n, true],
+ [-0x7ffffffffffffffffffffffen, -2n, true],
+ [-0x10000000000000001n, -2n, true],
+ [-0x10000000000000000n, -2n, true],
+ [-0xffffffffffffffffn, -2n, true],
+ [-0xfffffffffffffffen, -2n, true],
+ [-0x8000000000000001n, -2n, true],
+ [-0x8000000000000000n, -2n, true],
+ [-0x7fffffffffffffffn, -2n, true],
+ [-0x7ffffffffffffffen, -2n, true],
+ [-0x100000001n, -2n, true],
+ [-0x100000000n, -2n, true],
+ [-0xffffffffn, -2n, true],
+ [-0xfffffffen, -2n, true],
+ [-0x80000001n, -2n, true],
+ [-0x80000000n, -2n, true],
+ [-0x7fffffffn, -2n, true],
+ [-0x7ffffffen, -2n, true],
+ [-2n, -2n, false],
+ [-1n, -2n, false],
+ [0n, -2n, false],
+ [1n, -2n, false],
+ [2n, -2n, false],
+ [0x7ffffffen, -2n, false],
+ [0x7fffffffn, -2n, false],
+ [0x80000000n, -2n, false],
+ [0x80000001n, -2n, false],
+ [0xfffffffen, -2n, false],
+ [0xffffffffn, -2n, false],
+ [0x100000000n, -2n, false],
+ [0x100000001n, -2n, false],
+ [0x7ffffffffffffffen, -2n, false],
+ [0x7fffffffffffffffn, -2n, false],
+ [0x8000000000000000n, -2n, false],
+ [0x8000000000000001n, -2n, false],
+ [0xfffffffffffffffen, -2n, false],
+ [0xffffffffffffffffn, -2n, false],
+ [0x10000000000000000n, -2n, false],
+ [0x10000000000000001n, -2n, false],
+ [0x7ffffffffffffffffffffffen, -2n, false],
+ [0x7fffffffffffffffffffffffn, -2n, false],
+ [0x800000000000000000000000n, -2n, false],
+ [0x800000000000000000000001n, -2n, false],
+ [0xfffffffffffffffffffffffen, -2n, false],
+ [0xffffffffffffffffffffffffn, -2n, false],
+ [0x1000000000000000000000000n, -2n, false],
+ [0x1000000000000000000000001n, -2n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -2n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -2n, false],
+ [0x80000000000000000000000000000000n, -2n, false],
+ [0x80000000000000000000000000000001n, -2n, false],
+ [0xfffffffffffffffffffffffffffffffen, -2n, false],
+ [0xffffffffffffffffffffffffffffffffn, -2n, false],
+ [0x100000000000000000000000000000000n, -2n, false],
+ [0x100000000000000000000000000000001n, -2n, false],
+ [-0x100000000000000000000000000000001n, -1n, true],
+ [-0x100000000000000000000000000000000n, -1n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -1n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -1n, true],
+ [-0x80000000000000000000000000000001n, -1n, true],
+ [-0x80000000000000000000000000000000n, -1n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -1n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -1n, true],
+ [-0x1000000000000000000000001n, -1n, true],
+ [-0x1000000000000000000000000n, -1n, true],
+ [-0xffffffffffffffffffffffffn, -1n, true],
+ [-0xfffffffffffffffffffffffen, -1n, true],
+ [-0x800000000000000000000001n, -1n, true],
+ [-0x800000000000000000000000n, -1n, true],
+ [-0x7fffffffffffffffffffffffn, -1n, true],
+ [-0x7ffffffffffffffffffffffen, -1n, true],
+ [-0x10000000000000001n, -1n, true],
+ [-0x10000000000000000n, -1n, true],
+ [-0xffffffffffffffffn, -1n, true],
+ [-0xfffffffffffffffen, -1n, true],
+ [-0x8000000000000001n, -1n, true],
+ [-0x8000000000000000n, -1n, true],
+ [-0x7fffffffffffffffn, -1n, true],
+ [-0x7ffffffffffffffen, -1n, true],
+ [-0x100000001n, -1n, true],
+ [-0x100000000n, -1n, true],
+ [-0xffffffffn, -1n, true],
+ [-0xfffffffen, -1n, true],
+ [-0x80000001n, -1n, true],
+ [-0x80000000n, -1n, true],
+ [-0x7fffffffn, -1n, true],
+ [-0x7ffffffen, -1n, true],
+ [-2n, -1n, true],
+ [-1n, -1n, false],
+ [0n, -1n, false],
+ [1n, -1n, false],
+ [2n, -1n, false],
+ [0x7ffffffen, -1n, false],
+ [0x7fffffffn, -1n, false],
+ [0x80000000n, -1n, false],
+ [0x80000001n, -1n, false],
+ [0xfffffffen, -1n, false],
+ [0xffffffffn, -1n, false],
+ [0x100000000n, -1n, false],
+ [0x100000001n, -1n, false],
+ [0x7ffffffffffffffen, -1n, false],
+ [0x7fffffffffffffffn, -1n, false],
+ [0x8000000000000000n, -1n, false],
+ [0x8000000000000001n, -1n, false],
+ [0xfffffffffffffffen, -1n, false],
+ [0xffffffffffffffffn, -1n, false],
+ [0x10000000000000000n, -1n, false],
+ [0x10000000000000001n, -1n, false],
+ [0x7ffffffffffffffffffffffen, -1n, false],
+ [0x7fffffffffffffffffffffffn, -1n, false],
+ [0x800000000000000000000000n, -1n, false],
+ [0x800000000000000000000001n, -1n, false],
+ [0xfffffffffffffffffffffffen, -1n, false],
+ [0xffffffffffffffffffffffffn, -1n, false],
+ [0x1000000000000000000000000n, -1n, false],
+ [0x1000000000000000000000001n, -1n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -1n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -1n, false],
+ [0x80000000000000000000000000000000n, -1n, false],
+ [0x80000000000000000000000000000001n, -1n, false],
+ [0xfffffffffffffffffffffffffffffffen, -1n, false],
+ [0xffffffffffffffffffffffffffffffffn, -1n, false],
+ [0x100000000000000000000000000000000n, -1n, false],
+ [0x100000000000000000000000000000001n, -1n, false],
+ [-0x100000000000000000000000000000001n, 0n, true],
+ [-0x100000000000000000000000000000000n, 0n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0n, true],
+ [-0x80000000000000000000000000000001n, 0n, true],
+ [-0x80000000000000000000000000000000n, 0n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0n, true],
+ [-0x1000000000000000000000001n, 0n, true],
+ [-0x1000000000000000000000000n, 0n, true],
+ [-0xffffffffffffffffffffffffn, 0n, true],
+ [-0xfffffffffffffffffffffffen, 0n, true],
+ [-0x800000000000000000000001n, 0n, true],
+ [-0x800000000000000000000000n, 0n, true],
+ [-0x7fffffffffffffffffffffffn, 0n, true],
+ [-0x7ffffffffffffffffffffffen, 0n, true],
+ [-0x10000000000000001n, 0n, true],
+ [-0x10000000000000000n, 0n, true],
+ [-0xffffffffffffffffn, 0n, true],
+ [-0xfffffffffffffffen, 0n, true],
+ [-0x8000000000000001n, 0n, true],
+ [-0x8000000000000000n, 0n, true],
+ [-0x7fffffffffffffffn, 0n, true],
+ [-0x7ffffffffffffffen, 0n, true],
+ [-0x100000001n, 0n, true],
+ [-0x100000000n, 0n, true],
+ [-0xffffffffn, 0n, true],
+ [-0xfffffffen, 0n, true],
+ [-0x80000001n, 0n, true],
+ [-0x80000000n, 0n, true],
+ [-0x7fffffffn, 0n, true],
+ [-0x7ffffffen, 0n, true],
+ [-2n, 0n, true],
+ [-1n, 0n, true],
+ [0n, 0n, false],
+ [1n, 0n, false],
+ [2n, 0n, false],
+ [0x7ffffffen, 0n, false],
+ [0x7fffffffn, 0n, false],
+ [0x80000000n, 0n, false],
+ [0x80000001n, 0n, false],
+ [0xfffffffen, 0n, false],
+ [0xffffffffn, 0n, false],
+ [0x100000000n, 0n, false],
+ [0x100000001n, 0n, false],
+ [0x7ffffffffffffffen, 0n, false],
+ [0x7fffffffffffffffn, 0n, false],
+ [0x8000000000000000n, 0n, false],
+ [0x8000000000000001n, 0n, false],
+ [0xfffffffffffffffen, 0n, false],
+ [0xffffffffffffffffn, 0n, false],
+ [0x10000000000000000n, 0n, false],
+ [0x10000000000000001n, 0n, false],
+ [0x7ffffffffffffffffffffffen, 0n, false],
+ [0x7fffffffffffffffffffffffn, 0n, false],
+ [0x800000000000000000000000n, 0n, false],
+ [0x800000000000000000000001n, 0n, false],
+ [0xfffffffffffffffffffffffen, 0n, false],
+ [0xffffffffffffffffffffffffn, 0n, false],
+ [0x1000000000000000000000000n, 0n, false],
+ [0x1000000000000000000000001n, 0n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0n, false],
+ [0x80000000000000000000000000000000n, 0n, false],
+ [0x80000000000000000000000000000001n, 0n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0n, false],
+ [0x100000000000000000000000000000000n, 0n, false],
+ [0x100000000000000000000000000000001n, 0n, false],
+ [-0x100000000000000000000000000000001n, 1n, true],
+ [-0x100000000000000000000000000000000n, 1n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 1n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 1n, true],
+ [-0x80000000000000000000000000000001n, 1n, true],
+ [-0x80000000000000000000000000000000n, 1n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 1n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 1n, true],
+ [-0x1000000000000000000000001n, 1n, true],
+ [-0x1000000000000000000000000n, 1n, true],
+ [-0xffffffffffffffffffffffffn, 1n, true],
+ [-0xfffffffffffffffffffffffen, 1n, true],
+ [-0x800000000000000000000001n, 1n, true],
+ [-0x800000000000000000000000n, 1n, true],
+ [-0x7fffffffffffffffffffffffn, 1n, true],
+ [-0x7ffffffffffffffffffffffen, 1n, true],
+ [-0x10000000000000001n, 1n, true],
+ [-0x10000000000000000n, 1n, true],
+ [-0xffffffffffffffffn, 1n, true],
+ [-0xfffffffffffffffen, 1n, true],
+ [-0x8000000000000001n, 1n, true],
+ [-0x8000000000000000n, 1n, true],
+ [-0x7fffffffffffffffn, 1n, true],
+ [-0x7ffffffffffffffen, 1n, true],
+ [-0x100000001n, 1n, true],
+ [-0x100000000n, 1n, true],
+ [-0xffffffffn, 1n, true],
+ [-0xfffffffen, 1n, true],
+ [-0x80000001n, 1n, true],
+ [-0x80000000n, 1n, true],
+ [-0x7fffffffn, 1n, true],
+ [-0x7ffffffen, 1n, true],
+ [-2n, 1n, true],
+ [-1n, 1n, true],
+ [0n, 1n, true],
+ [1n, 1n, false],
+ [2n, 1n, false],
+ [0x7ffffffen, 1n, false],
+ [0x7fffffffn, 1n, false],
+ [0x80000000n, 1n, false],
+ [0x80000001n, 1n, false],
+ [0xfffffffen, 1n, false],
+ [0xffffffffn, 1n, false],
+ [0x100000000n, 1n, false],
+ [0x100000001n, 1n, false],
+ [0x7ffffffffffffffen, 1n, false],
+ [0x7fffffffffffffffn, 1n, false],
+ [0x8000000000000000n, 1n, false],
+ [0x8000000000000001n, 1n, false],
+ [0xfffffffffffffffen, 1n, false],
+ [0xffffffffffffffffn, 1n, false],
+ [0x10000000000000000n, 1n, false],
+ [0x10000000000000001n, 1n, false],
+ [0x7ffffffffffffffffffffffen, 1n, false],
+ [0x7fffffffffffffffffffffffn, 1n, false],
+ [0x800000000000000000000000n, 1n, false],
+ [0x800000000000000000000001n, 1n, false],
+ [0xfffffffffffffffffffffffen, 1n, false],
+ [0xffffffffffffffffffffffffn, 1n, false],
+ [0x1000000000000000000000000n, 1n, false],
+ [0x1000000000000000000000001n, 1n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 1n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 1n, false],
+ [0x80000000000000000000000000000000n, 1n, false],
+ [0x80000000000000000000000000000001n, 1n, false],
+ [0xfffffffffffffffffffffffffffffffen, 1n, false],
+ [0xffffffffffffffffffffffffffffffffn, 1n, false],
+ [0x100000000000000000000000000000000n, 1n, false],
+ [0x100000000000000000000000000000001n, 1n, false],
+ [-0x100000000000000000000000000000001n, 2n, true],
+ [-0x100000000000000000000000000000000n, 2n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 2n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 2n, true],
+ [-0x80000000000000000000000000000001n, 2n, true],
+ [-0x80000000000000000000000000000000n, 2n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 2n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 2n, true],
+ [-0x1000000000000000000000001n, 2n, true],
+ [-0x1000000000000000000000000n, 2n, true],
+ [-0xffffffffffffffffffffffffn, 2n, true],
+ [-0xfffffffffffffffffffffffen, 2n, true],
+ [-0x800000000000000000000001n, 2n, true],
+ [-0x800000000000000000000000n, 2n, true],
+ [-0x7fffffffffffffffffffffffn, 2n, true],
+ [-0x7ffffffffffffffffffffffen, 2n, true],
+ [-0x10000000000000001n, 2n, true],
+ [-0x10000000000000000n, 2n, true],
+ [-0xffffffffffffffffn, 2n, true],
+ [-0xfffffffffffffffen, 2n, true],
+ [-0x8000000000000001n, 2n, true],
+ [-0x8000000000000000n, 2n, true],
+ [-0x7fffffffffffffffn, 2n, true],
+ [-0x7ffffffffffffffen, 2n, true],
+ [-0x100000001n, 2n, true],
+ [-0x100000000n, 2n, true],
+ [-0xffffffffn, 2n, true],
+ [-0xfffffffen, 2n, true],
+ [-0x80000001n, 2n, true],
+ [-0x80000000n, 2n, true],
+ [-0x7fffffffn, 2n, true],
+ [-0x7ffffffen, 2n, true],
+ [-2n, 2n, true],
+ [-1n, 2n, true],
+ [0n, 2n, true],
+ [1n, 2n, true],
+ [2n, 2n, false],
+ [0x7ffffffen, 2n, false],
+ [0x7fffffffn, 2n, false],
+ [0x80000000n, 2n, false],
+ [0x80000001n, 2n, false],
+ [0xfffffffen, 2n, false],
+ [0xffffffffn, 2n, false],
+ [0x100000000n, 2n, false],
+ [0x100000001n, 2n, false],
+ [0x7ffffffffffffffen, 2n, false],
+ [0x7fffffffffffffffn, 2n, false],
+ [0x8000000000000000n, 2n, false],
+ [0x8000000000000001n, 2n, false],
+ [0xfffffffffffffffen, 2n, false],
+ [0xffffffffffffffffn, 2n, false],
+ [0x10000000000000000n, 2n, false],
+ [0x10000000000000001n, 2n, false],
+ [0x7ffffffffffffffffffffffen, 2n, false],
+ [0x7fffffffffffffffffffffffn, 2n, false],
+ [0x800000000000000000000000n, 2n, false],
+ [0x800000000000000000000001n, 2n, false],
+ [0xfffffffffffffffffffffffen, 2n, false],
+ [0xffffffffffffffffffffffffn, 2n, false],
+ [0x1000000000000000000000000n, 2n, false],
+ [0x1000000000000000000000001n, 2n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 2n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 2n, false],
+ [0x80000000000000000000000000000000n, 2n, false],
+ [0x80000000000000000000000000000001n, 2n, false],
+ [0xfffffffffffffffffffffffffffffffen, 2n, false],
+ [0xffffffffffffffffffffffffffffffffn, 2n, false],
+ [0x100000000000000000000000000000000n, 2n, false],
+ [0x100000000000000000000000000000001n, 2n, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffen, true],
+ [-0x100000000000000000000000000000000n, 0x7ffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffen, true],
+ [-0x80000000000000000000000000000001n, 0x7ffffffen, true],
+ [-0x80000000000000000000000000000000n, 0x7ffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffen, true],
+ [-0x1000000000000000000000001n, 0x7ffffffen, true],
+ [-0x1000000000000000000000000n, 0x7ffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0x7ffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0x7ffffffen, true],
+ [-0x800000000000000000000001n, 0x7ffffffen, true],
+ [-0x800000000000000000000000n, 0x7ffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0x7ffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0x7ffffffen, true],
+ [-0x10000000000000001n, 0x7ffffffen, true],
+ [-0x10000000000000000n, 0x7ffffffen, true],
+ [-0xffffffffffffffffn, 0x7ffffffen, true],
+ [-0xfffffffffffffffen, 0x7ffffffen, true],
+ [-0x8000000000000001n, 0x7ffffffen, true],
+ [-0x8000000000000000n, 0x7ffffffen, true],
+ [-0x7fffffffffffffffn, 0x7ffffffen, true],
+ [-0x7ffffffffffffffen, 0x7ffffffen, true],
+ [-0x100000001n, 0x7ffffffen, true],
+ [-0x100000000n, 0x7ffffffen, true],
+ [-0xffffffffn, 0x7ffffffen, true],
+ [-0xfffffffen, 0x7ffffffen, true],
+ [-0x80000001n, 0x7ffffffen, true],
+ [-0x80000000n, 0x7ffffffen, true],
+ [-0x7fffffffn, 0x7ffffffen, true],
+ [-0x7ffffffen, 0x7ffffffen, true],
+ [-2n, 0x7ffffffen, true],
+ [-1n, 0x7ffffffen, true],
+ [0n, 0x7ffffffen, true],
+ [1n, 0x7ffffffen, true],
+ [2n, 0x7ffffffen, true],
+ [0x7ffffffen, 0x7ffffffen, false],
+ [0x7fffffffn, 0x7ffffffen, false],
+ [0x80000000n, 0x7ffffffen, false],
+ [0x80000001n, 0x7ffffffen, false],
+ [0xfffffffen, 0x7ffffffen, false],
+ [0xffffffffn, 0x7ffffffen, false],
+ [0x100000000n, 0x7ffffffen, false],
+ [0x100000001n, 0x7ffffffen, false],
+ [0x7ffffffffffffffen, 0x7ffffffen, false],
+ [0x7fffffffffffffffn, 0x7ffffffen, false],
+ [0x8000000000000000n, 0x7ffffffen, false],
+ [0x8000000000000001n, 0x7ffffffen, false],
+ [0xfffffffffffffffen, 0x7ffffffen, false],
+ [0xffffffffffffffffn, 0x7ffffffen, false],
+ [0x10000000000000000n, 0x7ffffffen, false],
+ [0x10000000000000001n, 0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x800000000000000000000000n, 0x7ffffffen, false],
+ [0x800000000000000000000001n, 0x7ffffffen, false],
+ [0xfffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0xffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x1000000000000000000000000n, 0x7ffffffen, false],
+ [0x1000000000000000000000001n, 0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffn, true],
+ [-0x100000000000000000000000000000000n, 0x7fffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffn, true],
+ [-0x80000000000000000000000000000001n, 0x7fffffffn, true],
+ [-0x80000000000000000000000000000000n, 0x7fffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffn, true],
+ [-0x1000000000000000000000001n, 0x7fffffffn, true],
+ [-0x1000000000000000000000000n, 0x7fffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0x7fffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0x7fffffffn, true],
+ [-0x800000000000000000000001n, 0x7fffffffn, true],
+ [-0x800000000000000000000000n, 0x7fffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0x7fffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0x7fffffffn, true],
+ [-0x10000000000000001n, 0x7fffffffn, true],
+ [-0x10000000000000000n, 0x7fffffffn, true],
+ [-0xffffffffffffffffn, 0x7fffffffn, true],
+ [-0xfffffffffffffffen, 0x7fffffffn, true],
+ [-0x8000000000000001n, 0x7fffffffn, true],
+ [-0x8000000000000000n, 0x7fffffffn, true],
+ [-0x7fffffffffffffffn, 0x7fffffffn, true],
+ [-0x7ffffffffffffffen, 0x7fffffffn, true],
+ [-0x100000001n, 0x7fffffffn, true],
+ [-0x100000000n, 0x7fffffffn, true],
+ [-0xffffffffn, 0x7fffffffn, true],
+ [-0xfffffffen, 0x7fffffffn, true],
+ [-0x80000001n, 0x7fffffffn, true],
+ [-0x80000000n, 0x7fffffffn, true],
+ [-0x7fffffffn, 0x7fffffffn, true],
+ [-0x7ffffffen, 0x7fffffffn, true],
+ [-2n, 0x7fffffffn, true],
+ [-1n, 0x7fffffffn, true],
+ [0n, 0x7fffffffn, true],
+ [1n, 0x7fffffffn, true],
+ [2n, 0x7fffffffn, true],
+ [0x7ffffffen, 0x7fffffffn, true],
+ [0x7fffffffn, 0x7fffffffn, false],
+ [0x80000000n, 0x7fffffffn, false],
+ [0x80000001n, 0x7fffffffn, false],
+ [0xfffffffen, 0x7fffffffn, false],
+ [0xffffffffn, 0x7fffffffn, false],
+ [0x100000000n, 0x7fffffffn, false],
+ [0x100000001n, 0x7fffffffn, false],
+ [0x7ffffffffffffffen, 0x7fffffffn, false],
+ [0x7fffffffffffffffn, 0x7fffffffn, false],
+ [0x8000000000000000n, 0x7fffffffn, false],
+ [0x8000000000000001n, 0x7fffffffn, false],
+ [0xfffffffffffffffen, 0x7fffffffn, false],
+ [0xffffffffffffffffn, 0x7fffffffn, false],
+ [0x10000000000000000n, 0x7fffffffn, false],
+ [0x10000000000000001n, 0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x800000000000000000000000n, 0x7fffffffn, false],
+ [0x800000000000000000000001n, 0x7fffffffn, false],
+ [0xfffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0xffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x1000000000000000000000000n, 0x7fffffffn, false],
+ [0x1000000000000000000000001n, 0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x80000000000000000000000000000000n, 0x7fffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x80000000n, true],
+ [-0x100000000000000000000000000000000n, 0x80000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000000n, true],
+ [-0x80000000000000000000000000000001n, 0x80000000n, true],
+ [-0x80000000000000000000000000000000n, 0x80000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000000n, true],
+ [-0x1000000000000000000000001n, 0x80000000n, true],
+ [-0x1000000000000000000000000n, 0x80000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x80000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x80000000n, true],
+ [-0x800000000000000000000001n, 0x80000000n, true],
+ [-0x800000000000000000000000n, 0x80000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x80000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x80000000n, true],
+ [-0x10000000000000001n, 0x80000000n, true],
+ [-0x10000000000000000n, 0x80000000n, true],
+ [-0xffffffffffffffffn, 0x80000000n, true],
+ [-0xfffffffffffffffen, 0x80000000n, true],
+ [-0x8000000000000001n, 0x80000000n, true],
+ [-0x8000000000000000n, 0x80000000n, true],
+ [-0x7fffffffffffffffn, 0x80000000n, true],
+ [-0x7ffffffffffffffen, 0x80000000n, true],
+ [-0x100000001n, 0x80000000n, true],
+ [-0x100000000n, 0x80000000n, true],
+ [-0xffffffffn, 0x80000000n, true],
+ [-0xfffffffen, 0x80000000n, true],
+ [-0x80000001n, 0x80000000n, true],
+ [-0x80000000n, 0x80000000n, true],
+ [-0x7fffffffn, 0x80000000n, true],
+ [-0x7ffffffen, 0x80000000n, true],
+ [-2n, 0x80000000n, true],
+ [-1n, 0x80000000n, true],
+ [0n, 0x80000000n, true],
+ [1n, 0x80000000n, true],
+ [2n, 0x80000000n, true],
+ [0x7ffffffen, 0x80000000n, true],
+ [0x7fffffffn, 0x80000000n, true],
+ [0x80000000n, 0x80000000n, false],
+ [0x80000001n, 0x80000000n, false],
+ [0xfffffffen, 0x80000000n, false],
+ [0xffffffffn, 0x80000000n, false],
+ [0x100000000n, 0x80000000n, false],
+ [0x100000001n, 0x80000000n, false],
+ [0x7ffffffffffffffen, 0x80000000n, false],
+ [0x7fffffffffffffffn, 0x80000000n, false],
+ [0x8000000000000000n, 0x80000000n, false],
+ [0x8000000000000001n, 0x80000000n, false],
+ [0xfffffffffffffffen, 0x80000000n, false],
+ [0xffffffffffffffffn, 0x80000000n, false],
+ [0x10000000000000000n, 0x80000000n, false],
+ [0x10000000000000001n, 0x80000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x80000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x80000000n, false],
+ [0x800000000000000000000000n, 0x80000000n, false],
+ [0x800000000000000000000001n, 0x80000000n, false],
+ [0xfffffffffffffffffffffffen, 0x80000000n, false],
+ [0xffffffffffffffffffffffffn, 0x80000000n, false],
+ [0x1000000000000000000000000n, 0x80000000n, false],
+ [0x1000000000000000000000001n, 0x80000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x80000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x80000000n, false],
+ [0x80000000000000000000000000000000n, 0x80000000n, false],
+ [0x80000000000000000000000000000001n, 0x80000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000000n, false],
+ [0x100000000000000000000000000000000n, 0x80000000n, false],
+ [0x100000000000000000000000000000001n, 0x80000000n, false],
+ [-0x100000000000000000000000000000001n, 0x80000001n, true],
+ [-0x100000000000000000000000000000000n, 0x80000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000001n, true],
+ [-0x80000000000000000000000000000001n, 0x80000001n, true],
+ [-0x80000000000000000000000000000000n, 0x80000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000001n, true],
+ [-0x1000000000000000000000001n, 0x80000001n, true],
+ [-0x1000000000000000000000000n, 0x80000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x80000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x80000001n, true],
+ [-0x800000000000000000000001n, 0x80000001n, true],
+ [-0x800000000000000000000000n, 0x80000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x80000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x80000001n, true],
+ [-0x10000000000000001n, 0x80000001n, true],
+ [-0x10000000000000000n, 0x80000001n, true],
+ [-0xffffffffffffffffn, 0x80000001n, true],
+ [-0xfffffffffffffffen, 0x80000001n, true],
+ [-0x8000000000000001n, 0x80000001n, true],
+ [-0x8000000000000000n, 0x80000001n, true],
+ [-0x7fffffffffffffffn, 0x80000001n, true],
+ [-0x7ffffffffffffffen, 0x80000001n, true],
+ [-0x100000001n, 0x80000001n, true],
+ [-0x100000000n, 0x80000001n, true],
+ [-0xffffffffn, 0x80000001n, true],
+ [-0xfffffffen, 0x80000001n, true],
+ [-0x80000001n, 0x80000001n, true],
+ [-0x80000000n, 0x80000001n, true],
+ [-0x7fffffffn, 0x80000001n, true],
+ [-0x7ffffffen, 0x80000001n, true],
+ [-2n, 0x80000001n, true],
+ [-1n, 0x80000001n, true],
+ [0n, 0x80000001n, true],
+ [1n, 0x80000001n, true],
+ [2n, 0x80000001n, true],
+ [0x7ffffffen, 0x80000001n, true],
+ [0x7fffffffn, 0x80000001n, true],
+ [0x80000000n, 0x80000001n, true],
+ [0x80000001n, 0x80000001n, false],
+ [0xfffffffen, 0x80000001n, false],
+ [0xffffffffn, 0x80000001n, false],
+ [0x100000000n, 0x80000001n, false],
+ [0x100000001n, 0x80000001n, false],
+ [0x7ffffffffffffffen, 0x80000001n, false],
+ [0x7fffffffffffffffn, 0x80000001n, false],
+ [0x8000000000000000n, 0x80000001n, false],
+ [0x8000000000000001n, 0x80000001n, false],
+ [0xfffffffffffffffen, 0x80000001n, false],
+ [0xffffffffffffffffn, 0x80000001n, false],
+ [0x10000000000000000n, 0x80000001n, false],
+ [0x10000000000000001n, 0x80000001n, false],
+ [0x7ffffffffffffffffffffffen, 0x80000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x80000001n, false],
+ [0x800000000000000000000000n, 0x80000001n, false],
+ [0x800000000000000000000001n, 0x80000001n, false],
+ [0xfffffffffffffffffffffffen, 0x80000001n, false],
+ [0xffffffffffffffffffffffffn, 0x80000001n, false],
+ [0x1000000000000000000000000n, 0x80000001n, false],
+ [0x1000000000000000000000001n, 0x80000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x80000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x80000001n, false],
+ [0x80000000000000000000000000000000n, 0x80000001n, false],
+ [0x80000000000000000000000000000001n, 0x80000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000001n, false],
+ [0x100000000000000000000000000000000n, 0x80000001n, false],
+ [0x100000000000000000000000000000001n, 0x80000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000001n, true],
+ [-0x100000000000000000000000000000000n, -0x80000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000001n, true],
+ [-0x80000000000000000000000000000001n, -0x80000001n, true],
+ [-0x80000000000000000000000000000000n, -0x80000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000001n, true],
+ [-0x1000000000000000000000001n, -0x80000001n, true],
+ [-0x1000000000000000000000000n, -0x80000001n, true],
+ [-0xffffffffffffffffffffffffn, -0x80000001n, true],
+ [-0xfffffffffffffffffffffffen, -0x80000001n, true],
+ [-0x800000000000000000000001n, -0x80000001n, true],
+ [-0x800000000000000000000000n, -0x80000001n, true],
+ [-0x7fffffffffffffffffffffffn, -0x80000001n, true],
+ [-0x7ffffffffffffffffffffffen, -0x80000001n, true],
+ [-0x10000000000000001n, -0x80000001n, true],
+ [-0x10000000000000000n, -0x80000001n, true],
+ [-0xffffffffffffffffn, -0x80000001n, true],
+ [-0xfffffffffffffffen, -0x80000001n, true],
+ [-0x8000000000000001n, -0x80000001n, true],
+ [-0x8000000000000000n, -0x80000001n, true],
+ [-0x7fffffffffffffffn, -0x80000001n, true],
+ [-0x7ffffffffffffffen, -0x80000001n, true],
+ [-0x100000001n, -0x80000001n, true],
+ [-0x100000000n, -0x80000001n, true],
+ [-0xffffffffn, -0x80000001n, true],
+ [-0xfffffffen, -0x80000001n, true],
+ [-0x80000001n, -0x80000001n, false],
+ [-0x80000000n, -0x80000001n, false],
+ [-0x7fffffffn, -0x80000001n, false],
+ [-0x7ffffffen, -0x80000001n, false],
+ [-2n, -0x80000001n, false],
+ [-1n, -0x80000001n, false],
+ [0n, -0x80000001n, false],
+ [1n, -0x80000001n, false],
+ [2n, -0x80000001n, false],
+ [0x7ffffffen, -0x80000001n, false],
+ [0x7fffffffn, -0x80000001n, false],
+ [0x80000000n, -0x80000001n, false],
+ [0x80000001n, -0x80000001n, false],
+ [0xfffffffen, -0x80000001n, false],
+ [0xffffffffn, -0x80000001n, false],
+ [0x100000000n, -0x80000001n, false],
+ [0x100000001n, -0x80000001n, false],
+ [0x7ffffffffffffffen, -0x80000001n, false],
+ [0x7fffffffffffffffn, -0x80000001n, false],
+ [0x8000000000000000n, -0x80000001n, false],
+ [0x8000000000000001n, -0x80000001n, false],
+ [0xfffffffffffffffen, -0x80000001n, false],
+ [0xffffffffffffffffn, -0x80000001n, false],
+ [0x10000000000000000n, -0x80000001n, false],
+ [0x10000000000000001n, -0x80000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x80000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x80000001n, false],
+ [0x800000000000000000000000n, -0x80000001n, false],
+ [0x800000000000000000000001n, -0x80000001n, false],
+ [0xfffffffffffffffffffffffen, -0x80000001n, false],
+ [0xffffffffffffffffffffffffn, -0x80000001n, false],
+ [0x1000000000000000000000000n, -0x80000001n, false],
+ [0x1000000000000000000000001n, -0x80000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x80000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x80000001n, false],
+ [0x80000000000000000000000000000000n, -0x80000001n, false],
+ [0x80000000000000000000000000000001n, -0x80000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000001n, false],
+ [0x100000000000000000000000000000000n, -0x80000001n, false],
+ [0x100000000000000000000000000000001n, -0x80000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000000n, true],
+ [-0x100000000000000000000000000000000n, -0x80000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000000n, true],
+ [-0x80000000000000000000000000000001n, -0x80000000n, true],
+ [-0x80000000000000000000000000000000n, -0x80000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000000n, true],
+ [-0x1000000000000000000000001n, -0x80000000n, true],
+ [-0x1000000000000000000000000n, -0x80000000n, true],
+ [-0xffffffffffffffffffffffffn, -0x80000000n, true],
+ [-0xfffffffffffffffffffffffen, -0x80000000n, true],
+ [-0x800000000000000000000001n, -0x80000000n, true],
+ [-0x800000000000000000000000n, -0x80000000n, true],
+ [-0x7fffffffffffffffffffffffn, -0x80000000n, true],
+ [-0x7ffffffffffffffffffffffen, -0x80000000n, true],
+ [-0x10000000000000001n, -0x80000000n, true],
+ [-0x10000000000000000n, -0x80000000n, true],
+ [-0xffffffffffffffffn, -0x80000000n, true],
+ [-0xfffffffffffffffen, -0x80000000n, true],
+ [-0x8000000000000001n, -0x80000000n, true],
+ [-0x8000000000000000n, -0x80000000n, true],
+ [-0x7fffffffffffffffn, -0x80000000n, true],
+ [-0x7ffffffffffffffen, -0x80000000n, true],
+ [-0x100000001n, -0x80000000n, true],
+ [-0x100000000n, -0x80000000n, true],
+ [-0xffffffffn, -0x80000000n, true],
+ [-0xfffffffen, -0x80000000n, true],
+ [-0x80000001n, -0x80000000n, true],
+ [-0x80000000n, -0x80000000n, false],
+ [-0x7fffffffn, -0x80000000n, false],
+ [-0x7ffffffen, -0x80000000n, false],
+ [-2n, -0x80000000n, false],
+ [-1n, -0x80000000n, false],
+ [0n, -0x80000000n, false],
+ [1n, -0x80000000n, false],
+ [2n, -0x80000000n, false],
+ [0x7ffffffen, -0x80000000n, false],
+ [0x7fffffffn, -0x80000000n, false],
+ [0x80000000n, -0x80000000n, false],
+ [0x80000001n, -0x80000000n, false],
+ [0xfffffffen, -0x80000000n, false],
+ [0xffffffffn, -0x80000000n, false],
+ [0x100000000n, -0x80000000n, false],
+ [0x100000001n, -0x80000000n, false],
+ [0x7ffffffffffffffen, -0x80000000n, false],
+ [0x7fffffffffffffffn, -0x80000000n, false],
+ [0x8000000000000000n, -0x80000000n, false],
+ [0x8000000000000001n, -0x80000000n, false],
+ [0xfffffffffffffffen, -0x80000000n, false],
+ [0xffffffffffffffffn, -0x80000000n, false],
+ [0x10000000000000000n, -0x80000000n, false],
+ [0x10000000000000001n, -0x80000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x80000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x80000000n, false],
+ [0x800000000000000000000000n, -0x80000000n, false],
+ [0x800000000000000000000001n, -0x80000000n, false],
+ [0xfffffffffffffffffffffffen, -0x80000000n, false],
+ [0xffffffffffffffffffffffffn, -0x80000000n, false],
+ [0x1000000000000000000000000n, -0x80000000n, false],
+ [0x1000000000000000000000001n, -0x80000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x80000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x80000000n, false],
+ [0x80000000000000000000000000000000n, -0x80000000n, false],
+ [0x80000000000000000000000000000001n, -0x80000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000000n, false],
+ [0x100000000000000000000000000000000n, -0x80000000n, false],
+ [0x100000000000000000000000000000001n, -0x80000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffn, true],
+ [-0x100000000000000000000000000000000n, -0x7fffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffn, true],
+ [-0x80000000000000000000000000000001n, -0x7fffffffn, true],
+ [-0x80000000000000000000000000000000n, -0x7fffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffn, true],
+ [-0x1000000000000000000000001n, -0x7fffffffn, true],
+ [-0x1000000000000000000000000n, -0x7fffffffn, true],
+ [-0xffffffffffffffffffffffffn, -0x7fffffffn, true],
+ [-0xfffffffffffffffffffffffen, -0x7fffffffn, true],
+ [-0x800000000000000000000001n, -0x7fffffffn, true],
+ [-0x800000000000000000000000n, -0x7fffffffn, true],
+ [-0x7fffffffffffffffffffffffn, -0x7fffffffn, true],
+ [-0x7ffffffffffffffffffffffen, -0x7fffffffn, true],
+ [-0x10000000000000001n, -0x7fffffffn, true],
+ [-0x10000000000000000n, -0x7fffffffn, true],
+ [-0xffffffffffffffffn, -0x7fffffffn, true],
+ [-0xfffffffffffffffen, -0x7fffffffn, true],
+ [-0x8000000000000001n, -0x7fffffffn, true],
+ [-0x8000000000000000n, -0x7fffffffn, true],
+ [-0x7fffffffffffffffn, -0x7fffffffn, true],
+ [-0x7ffffffffffffffen, -0x7fffffffn, true],
+ [-0x100000001n, -0x7fffffffn, true],
+ [-0x100000000n, -0x7fffffffn, true],
+ [-0xffffffffn, -0x7fffffffn, true],
+ [-0xfffffffen, -0x7fffffffn, true],
+ [-0x80000001n, -0x7fffffffn, true],
+ [-0x80000000n, -0x7fffffffn, true],
+ [-0x7fffffffn, -0x7fffffffn, false],
+ [-0x7ffffffen, -0x7fffffffn, false],
+ [-2n, -0x7fffffffn, false],
+ [-1n, -0x7fffffffn, false],
+ [0n, -0x7fffffffn, false],
+ [1n, -0x7fffffffn, false],
+ [2n, -0x7fffffffn, false],
+ [0x7ffffffen, -0x7fffffffn, false],
+ [0x7fffffffn, -0x7fffffffn, false],
+ [0x80000000n, -0x7fffffffn, false],
+ [0x80000001n, -0x7fffffffn, false],
+ [0xfffffffen, -0x7fffffffn, false],
+ [0xffffffffn, -0x7fffffffn, false],
+ [0x100000000n, -0x7fffffffn, false],
+ [0x100000001n, -0x7fffffffn, false],
+ [0x7ffffffffffffffen, -0x7fffffffn, false],
+ [0x7fffffffffffffffn, -0x7fffffffn, false],
+ [0x8000000000000000n, -0x7fffffffn, false],
+ [0x8000000000000001n, -0x7fffffffn, false],
+ [0xfffffffffffffffen, -0x7fffffffn, false],
+ [0xffffffffffffffffn, -0x7fffffffn, false],
+ [0x10000000000000000n, -0x7fffffffn, false],
+ [0x10000000000000001n, -0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x800000000000000000000000n, -0x7fffffffn, false],
+ [0x800000000000000000000001n, -0x7fffffffn, false],
+ [0xfffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0xffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x1000000000000000000000000n, -0x7fffffffn, false],
+ [0x1000000000000000000000001n, -0x7fffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x80000000000000000000000000000000n, -0x7fffffffn, false],
+ [0x80000000000000000000000000000001n, -0x7fffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffen, true],
+ [-0x100000000000000000000000000000000n, -0x7ffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffen, true],
+ [-0x80000000000000000000000000000001n, -0x7ffffffen, true],
+ [-0x80000000000000000000000000000000n, -0x7ffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7ffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffen, true],
+ [-0x1000000000000000000000001n, -0x7ffffffen, true],
+ [-0x1000000000000000000000000n, -0x7ffffffen, true],
+ [-0xffffffffffffffffffffffffn, -0x7ffffffen, true],
+ [-0xfffffffffffffffffffffffen, -0x7ffffffen, true],
+ [-0x800000000000000000000001n, -0x7ffffffen, true],
+ [-0x800000000000000000000000n, -0x7ffffffen, true],
+ [-0x7fffffffffffffffffffffffn, -0x7ffffffen, true],
+ [-0x7ffffffffffffffffffffffen, -0x7ffffffen, true],
+ [-0x10000000000000001n, -0x7ffffffen, true],
+ [-0x10000000000000000n, -0x7ffffffen, true],
+ [-0xffffffffffffffffn, -0x7ffffffen, true],
+ [-0xfffffffffffffffen, -0x7ffffffen, true],
+ [-0x8000000000000001n, -0x7ffffffen, true],
+ [-0x8000000000000000n, -0x7ffffffen, true],
+ [-0x7fffffffffffffffn, -0x7ffffffen, true],
+ [-0x7ffffffffffffffen, -0x7ffffffen, true],
+ [-0x100000001n, -0x7ffffffen, true],
+ [-0x100000000n, -0x7ffffffen, true],
+ [-0xffffffffn, -0x7ffffffen, true],
+ [-0xfffffffen, -0x7ffffffen, true],
+ [-0x80000001n, -0x7ffffffen, true],
+ [-0x80000000n, -0x7ffffffen, true],
+ [-0x7fffffffn, -0x7ffffffen, true],
+ [-0x7ffffffen, -0x7ffffffen, false],
+ [-2n, -0x7ffffffen, false],
+ [-1n, -0x7ffffffen, false],
+ [0n, -0x7ffffffen, false],
+ [1n, -0x7ffffffen, false],
+ [2n, -0x7ffffffen, false],
+ [0x7ffffffen, -0x7ffffffen, false],
+ [0x7fffffffn, -0x7ffffffen, false],
+ [0x80000000n, -0x7ffffffen, false],
+ [0x80000001n, -0x7ffffffen, false],
+ [0xfffffffen, -0x7ffffffen, false],
+ [0xffffffffn, -0x7ffffffen, false],
+ [0x100000000n, -0x7ffffffen, false],
+ [0x100000001n, -0x7ffffffen, false],
+ [0x7ffffffffffffffen, -0x7ffffffen, false],
+ [0x7fffffffffffffffn, -0x7ffffffen, false],
+ [0x8000000000000000n, -0x7ffffffen, false],
+ [0x8000000000000001n, -0x7ffffffen, false],
+ [0xfffffffffffffffen, -0x7ffffffen, false],
+ [0xffffffffffffffffn, -0x7ffffffen, false],
+ [0x10000000000000000n, -0x7ffffffen, false],
+ [0x10000000000000001n, -0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x800000000000000000000000n, -0x7ffffffen, false],
+ [0x800000000000000000000001n, -0x7ffffffen, false],
+ [0xfffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0xffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x1000000000000000000000000n, -0x7ffffffen, false],
+ [0x1000000000000000000000001n, -0x7ffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x80000000000000000000000000000000n, -0x7ffffffen, false],
+ [0x80000000000000000000000000000001n, -0x7ffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffen, true],
+ [-0x100000000000000000000000000000000n, 0xfffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffen, true],
+ [-0x80000000000000000000000000000001n, 0xfffffffen, true],
+ [-0x80000000000000000000000000000000n, 0xfffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xfffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xfffffffen, true],
+ [-0x1000000000000000000000001n, 0xfffffffen, true],
+ [-0x1000000000000000000000000n, 0xfffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0xfffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0xfffffffen, true],
+ [-0x800000000000000000000001n, 0xfffffffen, true],
+ [-0x800000000000000000000000n, 0xfffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0xfffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0xfffffffen, true],
+ [-0x10000000000000001n, 0xfffffffen, true],
+ [-0x10000000000000000n, 0xfffffffen, true],
+ [-0xffffffffffffffffn, 0xfffffffen, true],
+ [-0xfffffffffffffffen, 0xfffffffen, true],
+ [-0x8000000000000001n, 0xfffffffen, true],
+ [-0x8000000000000000n, 0xfffffffen, true],
+ [-0x7fffffffffffffffn, 0xfffffffen, true],
+ [-0x7ffffffffffffffen, 0xfffffffen, true],
+ [-0x100000001n, 0xfffffffen, true],
+ [-0x100000000n, 0xfffffffen, true],
+ [-0xffffffffn, 0xfffffffen, true],
+ [-0xfffffffen, 0xfffffffen, true],
+ [-0x80000001n, 0xfffffffen, true],
+ [-0x80000000n, 0xfffffffen, true],
+ [-0x7fffffffn, 0xfffffffen, true],
+ [-0x7ffffffen, 0xfffffffen, true],
+ [-2n, 0xfffffffen, true],
+ [-1n, 0xfffffffen, true],
+ [0n, 0xfffffffen, true],
+ [1n, 0xfffffffen, true],
+ [2n, 0xfffffffen, true],
+ [0x7ffffffen, 0xfffffffen, true],
+ [0x7fffffffn, 0xfffffffen, true],
+ [0x80000000n, 0xfffffffen, true],
+ [0x80000001n, 0xfffffffen, true],
+ [0xfffffffen, 0xfffffffen, false],
+ [0xffffffffn, 0xfffffffen, false],
+ [0x100000000n, 0xfffffffen, false],
+ [0x100000001n, 0xfffffffen, false],
+ [0x7ffffffffffffffen, 0xfffffffen, false],
+ [0x7fffffffffffffffn, 0xfffffffen, false],
+ [0x8000000000000000n, 0xfffffffen, false],
+ [0x8000000000000001n, 0xfffffffen, false],
+ [0xfffffffffffffffen, 0xfffffffen, false],
+ [0xffffffffffffffffn, 0xfffffffen, false],
+ [0x10000000000000000n, 0xfffffffen, false],
+ [0x10000000000000001n, 0xfffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0xfffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x800000000000000000000000n, 0xfffffffen, false],
+ [0x800000000000000000000001n, 0xfffffffen, false],
+ [0xfffffffffffffffffffffffen, 0xfffffffen, false],
+ [0xffffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x1000000000000000000000000n, 0xfffffffen, false],
+ [0x1000000000000000000000001n, 0xfffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xfffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x80000000000000000000000000000000n, 0xfffffffen, false],
+ [0x80000000000000000000000000000001n, 0xfffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffn, true],
+ [-0x100000000000000000000000000000000n, 0xffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffn, true],
+ [-0x80000000000000000000000000000001n, 0xffffffffn, true],
+ [-0x80000000000000000000000000000000n, 0xffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xffffffffn, true],
+ [-0x1000000000000000000000001n, 0xffffffffn, true],
+ [-0x1000000000000000000000000n, 0xffffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0xffffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0xffffffffn, true],
+ [-0x800000000000000000000001n, 0xffffffffn, true],
+ [-0x800000000000000000000000n, 0xffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0xffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0xffffffffn, true],
+ [-0x10000000000000001n, 0xffffffffn, true],
+ [-0x10000000000000000n, 0xffffffffn, true],
+ [-0xffffffffffffffffn, 0xffffffffn, true],
+ [-0xfffffffffffffffen, 0xffffffffn, true],
+ [-0x8000000000000001n, 0xffffffffn, true],
+ [-0x8000000000000000n, 0xffffffffn, true],
+ [-0x7fffffffffffffffn, 0xffffffffn, true],
+ [-0x7ffffffffffffffen, 0xffffffffn, true],
+ [-0x100000001n, 0xffffffffn, true],
+ [-0x100000000n, 0xffffffffn, true],
+ [-0xffffffffn, 0xffffffffn, true],
+ [-0xfffffffen, 0xffffffffn, true],
+ [-0x80000001n, 0xffffffffn, true],
+ [-0x80000000n, 0xffffffffn, true],
+ [-0x7fffffffn, 0xffffffffn, true],
+ [-0x7ffffffen, 0xffffffffn, true],
+ [-2n, 0xffffffffn, true],
+ [-1n, 0xffffffffn, true],
+ [0n, 0xffffffffn, true],
+ [1n, 0xffffffffn, true],
+ [2n, 0xffffffffn, true],
+ [0x7ffffffen, 0xffffffffn, true],
+ [0x7fffffffn, 0xffffffffn, true],
+ [0x80000000n, 0xffffffffn, true],
+ [0x80000001n, 0xffffffffn, true],
+ [0xfffffffen, 0xffffffffn, true],
+ [0xffffffffn, 0xffffffffn, false],
+ [0x100000000n, 0xffffffffn, false],
+ [0x100000001n, 0xffffffffn, false],
+ [0x7ffffffffffffffen, 0xffffffffn, false],
+ [0x7fffffffffffffffn, 0xffffffffn, false],
+ [0x8000000000000000n, 0xffffffffn, false],
+ [0x8000000000000001n, 0xffffffffn, false],
+ [0xfffffffffffffffen, 0xffffffffn, false],
+ [0xffffffffffffffffn, 0xffffffffn, false],
+ [0x10000000000000000n, 0xffffffffn, false],
+ [0x10000000000000001n, 0xffffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0xffffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x800000000000000000000000n, 0xffffffffn, false],
+ [0x800000000000000000000001n, 0xffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0xffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x1000000000000000000000000n, 0xffffffffn, false],
+ [0x1000000000000000000000001n, 0xffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x80000000000000000000000000000000n, 0xffffffffn, false],
+ [0x80000000000000000000000000000001n, 0xffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffn, false],
+ [0x100000000000000000000000000000000n, 0xffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x100000000n, true],
+ [-0x100000000000000000000000000000000n, 0x100000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000000n, true],
+ [-0x80000000000000000000000000000001n, 0x100000000n, true],
+ [-0x80000000000000000000000000000000n, 0x100000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x100000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x100000000n, true],
+ [-0x1000000000000000000000001n, 0x100000000n, true],
+ [-0x1000000000000000000000000n, 0x100000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x100000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x100000000n, true],
+ [-0x800000000000000000000001n, 0x100000000n, true],
+ [-0x800000000000000000000000n, 0x100000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x100000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x100000000n, true],
+ [-0x10000000000000001n, 0x100000000n, true],
+ [-0x10000000000000000n, 0x100000000n, true],
+ [-0xffffffffffffffffn, 0x100000000n, true],
+ [-0xfffffffffffffffen, 0x100000000n, true],
+ [-0x8000000000000001n, 0x100000000n, true],
+ [-0x8000000000000000n, 0x100000000n, true],
+ [-0x7fffffffffffffffn, 0x100000000n, true],
+ [-0x7ffffffffffffffen, 0x100000000n, true],
+ [-0x100000001n, 0x100000000n, true],
+ [-0x100000000n, 0x100000000n, true],
+ [-0xffffffffn, 0x100000000n, true],
+ [-0xfffffffen, 0x100000000n, true],
+ [-0x80000001n, 0x100000000n, true],
+ [-0x80000000n, 0x100000000n, true],
+ [-0x7fffffffn, 0x100000000n, true],
+ [-0x7ffffffen, 0x100000000n, true],
+ [-2n, 0x100000000n, true],
+ [-1n, 0x100000000n, true],
+ [0n, 0x100000000n, true],
+ [1n, 0x100000000n, true],
+ [2n, 0x100000000n, true],
+ [0x7ffffffen, 0x100000000n, true],
+ [0x7fffffffn, 0x100000000n, true],
+ [0x80000000n, 0x100000000n, true],
+ [0x80000001n, 0x100000000n, true],
+ [0xfffffffen, 0x100000000n, true],
+ [0xffffffffn, 0x100000000n, true],
+ [0x100000000n, 0x100000000n, false],
+ [0x100000001n, 0x100000000n, false],
+ [0x7ffffffffffffffen, 0x100000000n, false],
+ [0x7fffffffffffffffn, 0x100000000n, false],
+ [0x8000000000000000n, 0x100000000n, false],
+ [0x8000000000000001n, 0x100000000n, false],
+ [0xfffffffffffffffen, 0x100000000n, false],
+ [0xffffffffffffffffn, 0x100000000n, false],
+ [0x10000000000000000n, 0x100000000n, false],
+ [0x10000000000000001n, 0x100000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x100000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x100000000n, false],
+ [0x800000000000000000000000n, 0x100000000n, false],
+ [0x800000000000000000000001n, 0x100000000n, false],
+ [0xfffffffffffffffffffffffen, 0x100000000n, false],
+ [0xffffffffffffffffffffffffn, 0x100000000n, false],
+ [0x1000000000000000000000000n, 0x100000000n, false],
+ [0x1000000000000000000000001n, 0x100000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x100000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x100000000n, false],
+ [0x80000000000000000000000000000000n, 0x100000000n, false],
+ [0x80000000000000000000000000000001n, 0x100000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x100000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x100000000n, false],
+ [0x100000000000000000000000000000000n, 0x100000000n, false],
+ [0x100000000000000000000000000000001n, 0x100000000n, false],
+ [-0x100000000000000000000000000000001n, 0x100000001n, true],
+ [-0x100000000000000000000000000000000n, 0x100000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000001n, true],
+ [-0x80000000000000000000000000000001n, 0x100000001n, true],
+ [-0x80000000000000000000000000000000n, 0x100000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x100000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x100000001n, true],
+ [-0x1000000000000000000000001n, 0x100000001n, true],
+ [-0x1000000000000000000000000n, 0x100000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x100000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x100000001n, true],
+ [-0x800000000000000000000001n, 0x100000001n, true],
+ [-0x800000000000000000000000n, 0x100000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x100000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x100000001n, true],
+ [-0x10000000000000001n, 0x100000001n, true],
+ [-0x10000000000000000n, 0x100000001n, true],
+ [-0xffffffffffffffffn, 0x100000001n, true],
+ [-0xfffffffffffffffen, 0x100000001n, true],
+ [-0x8000000000000001n, 0x100000001n, true],
+ [-0x8000000000000000n, 0x100000001n, true],
+ [-0x7fffffffffffffffn, 0x100000001n, true],
+ [-0x7ffffffffffffffen, 0x100000001n, true],
+ [-0x100000001n, 0x100000001n, true],
+ [-0x100000000n, 0x100000001n, true],
+ [-0xffffffffn, 0x100000001n, true],
+ [-0xfffffffen, 0x100000001n, true],
+ [-0x80000001n, 0x100000001n, true],
+ [-0x80000000n, 0x100000001n, true],
+ [-0x7fffffffn, 0x100000001n, true],
+ [-0x7ffffffen, 0x100000001n, true],
+ [-2n, 0x100000001n, true],
+ [-1n, 0x100000001n, true],
+ [0n, 0x100000001n, true],
+ [1n, 0x100000001n, true],
+ [2n, 0x100000001n, true],
+ [0x7ffffffen, 0x100000001n, true],
+ [0x7fffffffn, 0x100000001n, true],
+ [0x80000000n, 0x100000001n, true],
+ [0x80000001n, 0x100000001n, true],
+ [0xfffffffen, 0x100000001n, true],
+ [0xffffffffn, 0x100000001n, true],
+ [0x100000000n, 0x100000001n, true],
+ [0x100000001n, 0x100000001n, false],
+ [0x7ffffffffffffffen, 0x100000001n, false],
+ [0x7fffffffffffffffn, 0x100000001n, false],
+ [0x8000000000000000n, 0x100000001n, false],
+ [0x8000000000000001n, 0x100000001n, false],
+ [0xfffffffffffffffen, 0x100000001n, false],
+ [0xffffffffffffffffn, 0x100000001n, false],
+ [0x10000000000000000n, 0x100000001n, false],
+ [0x10000000000000001n, 0x100000001n, false],
+ [0x7ffffffffffffffffffffffen, 0x100000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x100000001n, false],
+ [0x800000000000000000000000n, 0x100000001n, false],
+ [0x800000000000000000000001n, 0x100000001n, false],
+ [0xfffffffffffffffffffffffen, 0x100000001n, false],
+ [0xffffffffffffffffffffffffn, 0x100000001n, false],
+ [0x1000000000000000000000000n, 0x100000001n, false],
+ [0x1000000000000000000000001n, 0x100000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x100000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x100000001n, false],
+ [0x80000000000000000000000000000000n, 0x100000001n, false],
+ [0x80000000000000000000000000000001n, 0x100000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x100000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x100000001n, false],
+ [0x100000000000000000000000000000000n, 0x100000001n, false],
+ [0x100000000000000000000000000000001n, 0x100000001n, false],
+ [-0x100000000000000000000000000000001n, -0x100000001n, true],
+ [-0x100000000000000000000000000000000n, -0x100000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000001n, true],
+ [-0x80000000000000000000000000000001n, -0x100000001n, true],
+ [-0x80000000000000000000000000000000n, -0x100000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x100000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x100000001n, true],
+ [-0x1000000000000000000000001n, -0x100000001n, true],
+ [-0x1000000000000000000000000n, -0x100000001n, true],
+ [-0xffffffffffffffffffffffffn, -0x100000001n, true],
+ [-0xfffffffffffffffffffffffen, -0x100000001n, true],
+ [-0x800000000000000000000001n, -0x100000001n, true],
+ [-0x800000000000000000000000n, -0x100000001n, true],
+ [-0x7fffffffffffffffffffffffn, -0x100000001n, true],
+ [-0x7ffffffffffffffffffffffen, -0x100000001n, true],
+ [-0x10000000000000001n, -0x100000001n, true],
+ [-0x10000000000000000n, -0x100000001n, true],
+ [-0xffffffffffffffffn, -0x100000001n, true],
+ [-0xfffffffffffffffen, -0x100000001n, true],
+ [-0x8000000000000001n, -0x100000001n, true],
+ [-0x8000000000000000n, -0x100000001n, true],
+ [-0x7fffffffffffffffn, -0x100000001n, true],
+ [-0x7ffffffffffffffen, -0x100000001n, true],
+ [-0x100000001n, -0x100000001n, false],
+ [-0x100000000n, -0x100000001n, false],
+ [-0xffffffffn, -0x100000001n, false],
+ [-0xfffffffen, -0x100000001n, false],
+ [-0x80000001n, -0x100000001n, false],
+ [-0x80000000n, -0x100000001n, false],
+ [-0x7fffffffn, -0x100000001n, false],
+ [-0x7ffffffen, -0x100000001n, false],
+ [-2n, -0x100000001n, false],
+ [-1n, -0x100000001n, false],
+ [0n, -0x100000001n, false],
+ [1n, -0x100000001n, false],
+ [2n, -0x100000001n, false],
+ [0x7ffffffen, -0x100000001n, false],
+ [0x7fffffffn, -0x100000001n, false],
+ [0x80000000n, -0x100000001n, false],
+ [0x80000001n, -0x100000001n, false],
+ [0xfffffffen, -0x100000001n, false],
+ [0xffffffffn, -0x100000001n, false],
+ [0x100000000n, -0x100000001n, false],
+ [0x100000001n, -0x100000001n, false],
+ [0x7ffffffffffffffen, -0x100000001n, false],
+ [0x7fffffffffffffffn, -0x100000001n, false],
+ [0x8000000000000000n, -0x100000001n, false],
+ [0x8000000000000001n, -0x100000001n, false],
+ [0xfffffffffffffffen, -0x100000001n, false],
+ [0xffffffffffffffffn, -0x100000001n, false],
+ [0x10000000000000000n, -0x100000001n, false],
+ [0x10000000000000001n, -0x100000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x100000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x100000001n, false],
+ [0x800000000000000000000000n, -0x100000001n, false],
+ [0x800000000000000000000001n, -0x100000001n, false],
+ [0xfffffffffffffffffffffffen, -0x100000001n, false],
+ [0xffffffffffffffffffffffffn, -0x100000001n, false],
+ [0x1000000000000000000000000n, -0x100000001n, false],
+ [0x1000000000000000000000001n, -0x100000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x100000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x100000001n, false],
+ [0x80000000000000000000000000000000n, -0x100000001n, false],
+ [0x80000000000000000000000000000001n, -0x100000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x100000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x100000001n, false],
+ [0x100000000000000000000000000000000n, -0x100000001n, false],
+ [0x100000000000000000000000000000001n, -0x100000001n, false],
+ [-0x100000000000000000000000000000001n, -0x100000000n, true],
+ [-0x100000000000000000000000000000000n, -0x100000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000000n, true],
+ [-0x80000000000000000000000000000001n, -0x100000000n, true],
+ [-0x80000000000000000000000000000000n, -0x100000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x100000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x100000000n, true],
+ [-0x1000000000000000000000001n, -0x100000000n, true],
+ [-0x1000000000000000000000000n, -0x100000000n, true],
+ [-0xffffffffffffffffffffffffn, -0x100000000n, true],
+ [-0xfffffffffffffffffffffffen, -0x100000000n, true],
+ [-0x800000000000000000000001n, -0x100000000n, true],
+ [-0x800000000000000000000000n, -0x100000000n, true],
+ [-0x7fffffffffffffffffffffffn, -0x100000000n, true],
+ [-0x7ffffffffffffffffffffffen, -0x100000000n, true],
+ [-0x10000000000000001n, -0x100000000n, true],
+ [-0x10000000000000000n, -0x100000000n, true],
+ [-0xffffffffffffffffn, -0x100000000n, true],
+ [-0xfffffffffffffffen, -0x100000000n, true],
+ [-0x8000000000000001n, -0x100000000n, true],
+ [-0x8000000000000000n, -0x100000000n, true],
+ [-0x7fffffffffffffffn, -0x100000000n, true],
+ [-0x7ffffffffffffffen, -0x100000000n, true],
+ [-0x100000001n, -0x100000000n, true],
+ [-0x100000000n, -0x100000000n, false],
+ [-0xffffffffn, -0x100000000n, false],
+ [-0xfffffffen, -0x100000000n, false],
+ [-0x80000001n, -0x100000000n, false],
+ [-0x80000000n, -0x100000000n, false],
+ [-0x7fffffffn, -0x100000000n, false],
+ [-0x7ffffffen, -0x100000000n, false],
+ [-2n, -0x100000000n, false],
+ [-1n, -0x100000000n, false],
+ [0n, -0x100000000n, false],
+ [1n, -0x100000000n, false],
+ [2n, -0x100000000n, false],
+ [0x7ffffffen, -0x100000000n, false],
+ [0x7fffffffn, -0x100000000n, false],
+ [0x80000000n, -0x100000000n, false],
+ [0x80000001n, -0x100000000n, false],
+ [0xfffffffen, -0x100000000n, false],
+ [0xffffffffn, -0x100000000n, false],
+ [0x100000000n, -0x100000000n, false],
+ [0x100000001n, -0x100000000n, false],
+ [0x7ffffffffffffffen, -0x100000000n, false],
+ [0x7fffffffffffffffn, -0x100000000n, false],
+ [0x8000000000000000n, -0x100000000n, false],
+ [0x8000000000000001n, -0x100000000n, false],
+ [0xfffffffffffffffen, -0x100000000n, false],
+ [0xffffffffffffffffn, -0x100000000n, false],
+ [0x10000000000000000n, -0x100000000n, false],
+ [0x10000000000000001n, -0x100000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x100000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x100000000n, false],
+ [0x800000000000000000000000n, -0x100000000n, false],
+ [0x800000000000000000000001n, -0x100000000n, false],
+ [0xfffffffffffffffffffffffen, -0x100000000n, false],
+ [0xffffffffffffffffffffffffn, -0x100000000n, false],
+ [0x1000000000000000000000000n, -0x100000000n, false],
+ [0x1000000000000000000000001n, -0x100000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x100000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x100000000n, false],
+ [0x80000000000000000000000000000000n, -0x100000000n, false],
+ [0x80000000000000000000000000000001n, -0x100000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x100000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x100000000n, false],
+ [0x100000000000000000000000000000000n, -0x100000000n, false],
+ [0x100000000000000000000000000000001n, -0x100000000n, false],
+ [-0x100000000000000000000000000000001n, -0xffffffffn, true],
+ [-0x100000000000000000000000000000000n, -0xffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffn, true],
+ [-0x80000000000000000000000000000001n, -0xffffffffn, true],
+ [-0x80000000000000000000000000000000n, -0xffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xffffffffn, true],
+ [-0x1000000000000000000000001n, -0xffffffffn, true],
+ [-0x1000000000000000000000000n, -0xffffffffn, true],
+ [-0xffffffffffffffffffffffffn, -0xffffffffn, true],
+ [-0xfffffffffffffffffffffffen, -0xffffffffn, true],
+ [-0x800000000000000000000001n, -0xffffffffn, true],
+ [-0x800000000000000000000000n, -0xffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, -0xffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, -0xffffffffn, true],
+ [-0x10000000000000001n, -0xffffffffn, true],
+ [-0x10000000000000000n, -0xffffffffn, true],
+ [-0xffffffffffffffffn, -0xffffffffn, true],
+ [-0xfffffffffffffffen, -0xffffffffn, true],
+ [-0x8000000000000001n, -0xffffffffn, true],
+ [-0x8000000000000000n, -0xffffffffn, true],
+ [-0x7fffffffffffffffn, -0xffffffffn, true],
+ [-0x7ffffffffffffffen, -0xffffffffn, true],
+ [-0x100000001n, -0xffffffffn, true],
+ [-0x100000000n, -0xffffffffn, true],
+ [-0xffffffffn, -0xffffffffn, false],
+ [-0xfffffffen, -0xffffffffn, false],
+ [-0x80000001n, -0xffffffffn, false],
+ [-0x80000000n, -0xffffffffn, false],
+ [-0x7fffffffn, -0xffffffffn, false],
+ [-0x7ffffffen, -0xffffffffn, false],
+ [-2n, -0xffffffffn, false],
+ [-1n, -0xffffffffn, false],
+ [0n, -0xffffffffn, false],
+ [1n, -0xffffffffn, false],
+ [2n, -0xffffffffn, false],
+ [0x7ffffffen, -0xffffffffn, false],
+ [0x7fffffffn, -0xffffffffn, false],
+ [0x80000000n, -0xffffffffn, false],
+ [0x80000001n, -0xffffffffn, false],
+ [0xfffffffen, -0xffffffffn, false],
+ [0xffffffffn, -0xffffffffn, false],
+ [0x100000000n, -0xffffffffn, false],
+ [0x100000001n, -0xffffffffn, false],
+ [0x7ffffffffffffffen, -0xffffffffn, false],
+ [0x7fffffffffffffffn, -0xffffffffn, false],
+ [0x8000000000000000n, -0xffffffffn, false],
+ [0x8000000000000001n, -0xffffffffn, false],
+ [0xfffffffffffffffen, -0xffffffffn, false],
+ [0xffffffffffffffffn, -0xffffffffn, false],
+ [0x10000000000000000n, -0xffffffffn, false],
+ [0x10000000000000001n, -0xffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0xffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x800000000000000000000000n, -0xffffffffn, false],
+ [0x800000000000000000000001n, -0xffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0xffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x1000000000000000000000000n, -0xffffffffn, false],
+ [0x1000000000000000000000001n, -0xffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x80000000000000000000000000000000n, -0xffffffffn, false],
+ [0x80000000000000000000000000000001n, -0xffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xffffffffn, false],
+ [0x100000000000000000000000000000000n, -0xffffffffn, false],
+ [0x100000000000000000000000000000001n, -0xffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0xfffffffen, true],
+ [-0x100000000000000000000000000000000n, -0xfffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xfffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffen, true],
+ [-0x80000000000000000000000000000001n, -0xfffffffen, true],
+ [-0x80000000000000000000000000000000n, -0xfffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xfffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xfffffffen, true],
+ [-0x1000000000000000000000001n, -0xfffffffen, true],
+ [-0x1000000000000000000000000n, -0xfffffffen, true],
+ [-0xffffffffffffffffffffffffn, -0xfffffffen, true],
+ [-0xfffffffffffffffffffffffen, -0xfffffffen, true],
+ [-0x800000000000000000000001n, -0xfffffffen, true],
+ [-0x800000000000000000000000n, -0xfffffffen, true],
+ [-0x7fffffffffffffffffffffffn, -0xfffffffen, true],
+ [-0x7ffffffffffffffffffffffen, -0xfffffffen, true],
+ [-0x10000000000000001n, -0xfffffffen, true],
+ [-0x10000000000000000n, -0xfffffffen, true],
+ [-0xffffffffffffffffn, -0xfffffffen, true],
+ [-0xfffffffffffffffen, -0xfffffffen, true],
+ [-0x8000000000000001n, -0xfffffffen, true],
+ [-0x8000000000000000n, -0xfffffffen, true],
+ [-0x7fffffffffffffffn, -0xfffffffen, true],
+ [-0x7ffffffffffffffen, -0xfffffffen, true],
+ [-0x100000001n, -0xfffffffen, true],
+ [-0x100000000n, -0xfffffffen, true],
+ [-0xffffffffn, -0xfffffffen, true],
+ [-0xfffffffen, -0xfffffffen, false],
+ [-0x80000001n, -0xfffffffen, false],
+ [-0x80000000n, -0xfffffffen, false],
+ [-0x7fffffffn, -0xfffffffen, false],
+ [-0x7ffffffen, -0xfffffffen, false],
+ [-2n, -0xfffffffen, false],
+ [-1n, -0xfffffffen, false],
+ [0n, -0xfffffffen, false],
+ [1n, -0xfffffffen, false],
+ [2n, -0xfffffffen, false],
+ [0x7ffffffen, -0xfffffffen, false],
+ [0x7fffffffn, -0xfffffffen, false],
+ [0x80000000n, -0xfffffffen, false],
+ [0x80000001n, -0xfffffffen, false],
+ [0xfffffffen, -0xfffffffen, false],
+ [0xffffffffn, -0xfffffffen, false],
+ [0x100000000n, -0xfffffffen, false],
+ [0x100000001n, -0xfffffffen, false],
+ [0x7ffffffffffffffen, -0xfffffffen, false],
+ [0x7fffffffffffffffn, -0xfffffffen, false],
+ [0x8000000000000000n, -0xfffffffen, false],
+ [0x8000000000000001n, -0xfffffffen, false],
+ [0xfffffffffffffffen, -0xfffffffen, false],
+ [0xffffffffffffffffn, -0xfffffffen, false],
+ [0x10000000000000000n, -0xfffffffen, false],
+ [0x10000000000000001n, -0xfffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0xfffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x800000000000000000000000n, -0xfffffffen, false],
+ [0x800000000000000000000001n, -0xfffffffen, false],
+ [0xfffffffffffffffffffffffen, -0xfffffffen, false],
+ [0xffffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x1000000000000000000000000n, -0xfffffffen, false],
+ [0x1000000000000000000000001n, -0xfffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xfffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x80000000000000000000000000000000n, -0xfffffffen, false],
+ [0x80000000000000000000000000000001n, -0xfffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xfffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xfffffffen, false],
+ [0x100000000000000000000000000000000n, -0xfffffffen, false],
+ [0x100000000000000000000000000000001n, -0xfffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, 0x7ffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, 0x7ffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, 0x7ffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, true],
+ [-0x1000000000000000000000001n, 0x7ffffffffffffffen, true],
+ [-0x1000000000000000000000000n, 0x7ffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0x7ffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0x7ffffffffffffffen, true],
+ [-0x800000000000000000000001n, 0x7ffffffffffffffen, true],
+ [-0x800000000000000000000000n, 0x7ffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0x7ffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0x7ffffffffffffffen, true],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, true],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, true],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, true],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, true],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, true],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, true],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, true],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, true],
+ [-0x100000001n, 0x7ffffffffffffffen, true],
+ [-0x100000000n, 0x7ffffffffffffffen, true],
+ [-0xffffffffn, 0x7ffffffffffffffen, true],
+ [-0xfffffffen, 0x7ffffffffffffffen, true],
+ [-0x80000001n, 0x7ffffffffffffffen, true],
+ [-0x80000000n, 0x7ffffffffffffffen, true],
+ [-0x7fffffffn, 0x7ffffffffffffffen, true],
+ [-0x7ffffffen, 0x7ffffffffffffffen, true],
+ [-2n, 0x7ffffffffffffffen, true],
+ [-1n, 0x7ffffffffffffffen, true],
+ [0n, 0x7ffffffffffffffen, true],
+ [1n, 0x7ffffffffffffffen, true],
+ [2n, 0x7ffffffffffffffen, true],
+ [0x7ffffffen, 0x7ffffffffffffffen, true],
+ [0x7fffffffn, 0x7ffffffffffffffen, true],
+ [0x80000000n, 0x7ffffffffffffffen, true],
+ [0x80000001n, 0x7ffffffffffffffen, true],
+ [0xfffffffen, 0x7ffffffffffffffen, true],
+ [0xffffffffn, 0x7ffffffffffffffen, true],
+ [0x100000000n, 0x7ffffffffffffffen, true],
+ [0x100000001n, 0x7ffffffffffffffen, true],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x8000000000000000n, 0x7ffffffffffffffen, false],
+ [0x8000000000000001n, 0x7ffffffffffffffen, false],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x10000000000000000n, 0x7ffffffffffffffen, false],
+ [0x10000000000000001n, 0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x800000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x800000000000000000000001n, 0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, 0x7fffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, 0x7fffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, 0x7fffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, true],
+ [-0x1000000000000000000000001n, 0x7fffffffffffffffn, true],
+ [-0x1000000000000000000000000n, 0x7fffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0x7fffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0x7fffffffffffffffn, true],
+ [-0x800000000000000000000001n, 0x7fffffffffffffffn, true],
+ [-0x800000000000000000000000n, 0x7fffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0x7fffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0x7fffffffffffffffn, true],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, true],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, true],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, true],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, true],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, true],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, true],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, true],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, true],
+ [-0x100000001n, 0x7fffffffffffffffn, true],
+ [-0x100000000n, 0x7fffffffffffffffn, true],
+ [-0xffffffffn, 0x7fffffffffffffffn, true],
+ [-0xfffffffen, 0x7fffffffffffffffn, true],
+ [-0x80000001n, 0x7fffffffffffffffn, true],
+ [-0x80000000n, 0x7fffffffffffffffn, true],
+ [-0x7fffffffn, 0x7fffffffffffffffn, true],
+ [-0x7ffffffen, 0x7fffffffffffffffn, true],
+ [-2n, 0x7fffffffffffffffn, true],
+ [-1n, 0x7fffffffffffffffn, true],
+ [0n, 0x7fffffffffffffffn, true],
+ [1n, 0x7fffffffffffffffn, true],
+ [2n, 0x7fffffffffffffffn, true],
+ [0x7ffffffen, 0x7fffffffffffffffn, true],
+ [0x7fffffffn, 0x7fffffffffffffffn, true],
+ [0x80000000n, 0x7fffffffffffffffn, true],
+ [0x80000001n, 0x7fffffffffffffffn, true],
+ [0xfffffffen, 0x7fffffffffffffffn, true],
+ [0xffffffffn, 0x7fffffffffffffffn, true],
+ [0x100000000n, 0x7fffffffffffffffn, true],
+ [0x100000001n, 0x7fffffffffffffffn, true],
+ [0x7ffffffffffffffen, 0x7fffffffffffffffn, true],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x8000000000000000n, 0x7fffffffffffffffn, false],
+ [0x8000000000000001n, 0x7fffffffffffffffn, false],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x10000000000000000n, 0x7fffffffffffffffn, false],
+ [0x10000000000000001n, 0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x800000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x800000000000000000000001n, 0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x1000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x8000000000000000n, true],
+ [-0x100000000000000000000000000000000n, 0x8000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x8000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x8000000000000000n, true],
+ [-0x80000000000000000000000000000001n, 0x8000000000000000n, true],
+ [-0x80000000000000000000000000000000n, 0x8000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x8000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x8000000000000000n, true],
+ [-0x1000000000000000000000001n, 0x8000000000000000n, true],
+ [-0x1000000000000000000000000n, 0x8000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x8000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x8000000000000000n, true],
+ [-0x800000000000000000000001n, 0x8000000000000000n, true],
+ [-0x800000000000000000000000n, 0x8000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x8000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x8000000000000000n, true],
+ [-0x10000000000000001n, 0x8000000000000000n, true],
+ [-0x10000000000000000n, 0x8000000000000000n, true],
+ [-0xffffffffffffffffn, 0x8000000000000000n, true],
+ [-0xfffffffffffffffen, 0x8000000000000000n, true],
+ [-0x8000000000000001n, 0x8000000000000000n, true],
+ [-0x8000000000000000n, 0x8000000000000000n, true],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, true],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, true],
+ [-0x100000001n, 0x8000000000000000n, true],
+ [-0x100000000n, 0x8000000000000000n, true],
+ [-0xffffffffn, 0x8000000000000000n, true],
+ [-0xfffffffen, 0x8000000000000000n, true],
+ [-0x80000001n, 0x8000000000000000n, true],
+ [-0x80000000n, 0x8000000000000000n, true],
+ [-0x7fffffffn, 0x8000000000000000n, true],
+ [-0x7ffffffen, 0x8000000000000000n, true],
+ [-2n, 0x8000000000000000n, true],
+ [-1n, 0x8000000000000000n, true],
+ [0n, 0x8000000000000000n, true],
+ [1n, 0x8000000000000000n, true],
+ [2n, 0x8000000000000000n, true],
+ [0x7ffffffen, 0x8000000000000000n, true],
+ [0x7fffffffn, 0x8000000000000000n, true],
+ [0x80000000n, 0x8000000000000000n, true],
+ [0x80000001n, 0x8000000000000000n, true],
+ [0xfffffffen, 0x8000000000000000n, true],
+ [0xffffffffn, 0x8000000000000000n, true],
+ [0x100000000n, 0x8000000000000000n, true],
+ [0x100000001n, 0x8000000000000000n, true],
+ [0x7ffffffffffffffen, 0x8000000000000000n, true],
+ [0x7fffffffffffffffn, 0x8000000000000000n, true],
+ [0x8000000000000000n, 0x8000000000000000n, false],
+ [0x8000000000000001n, 0x8000000000000000n, false],
+ [0xfffffffffffffffen, 0x8000000000000000n, false],
+ [0xffffffffffffffffn, 0x8000000000000000n, false],
+ [0x10000000000000000n, 0x8000000000000000n, false],
+ [0x10000000000000001n, 0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x800000000000000000000000n, 0x8000000000000000n, false],
+ [0x800000000000000000000001n, 0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x1000000000000000000000000n, 0x8000000000000000n, false],
+ [0x1000000000000000000000001n, 0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x8000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x8000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x8000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x8000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x8000000000000001n, true],
+ [-0x100000000000000000000000000000000n, 0x8000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x8000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x8000000000000001n, true],
+ [-0x80000000000000000000000000000001n, 0x8000000000000001n, true],
+ [-0x80000000000000000000000000000000n, 0x8000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x8000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x8000000000000001n, true],
+ [-0x1000000000000000000000001n, 0x8000000000000001n, true],
+ [-0x1000000000000000000000000n, 0x8000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x8000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x8000000000000001n, true],
+ [-0x800000000000000000000001n, 0x8000000000000001n, true],
+ [-0x800000000000000000000000n, 0x8000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x8000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x8000000000000001n, true],
+ [-0x10000000000000001n, 0x8000000000000001n, true],
+ [-0x10000000000000000n, 0x8000000000000001n, true],
+ [-0xffffffffffffffffn, 0x8000000000000001n, true],
+ [-0xfffffffffffffffen, 0x8000000000000001n, true],
+ [-0x8000000000000001n, 0x8000000000000001n, true],
+ [-0x8000000000000000n, 0x8000000000000001n, true],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, true],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, true],
+ [-0x100000001n, 0x8000000000000001n, true],
+ [-0x100000000n, 0x8000000000000001n, true],
+ [-0xffffffffn, 0x8000000000000001n, true],
+ [-0xfffffffen, 0x8000000000000001n, true],
+ [-0x80000001n, 0x8000000000000001n, true],
+ [-0x80000000n, 0x8000000000000001n, true],
+ [-0x7fffffffn, 0x8000000000000001n, true],
+ [-0x7ffffffen, 0x8000000000000001n, true],
+ [-2n, 0x8000000000000001n, true],
+ [-1n, 0x8000000000000001n, true],
+ [0n, 0x8000000000000001n, true],
+ [1n, 0x8000000000000001n, true],
+ [2n, 0x8000000000000001n, true],
+ [0x7ffffffen, 0x8000000000000001n, true],
+ [0x7fffffffn, 0x8000000000000001n, true],
+ [0x80000000n, 0x8000000000000001n, true],
+ [0x80000001n, 0x8000000000000001n, true],
+ [0xfffffffen, 0x8000000000000001n, true],
+ [0xffffffffn, 0x8000000000000001n, true],
+ [0x100000000n, 0x8000000000000001n, true],
+ [0x100000001n, 0x8000000000000001n, true],
+ [0x7ffffffffffffffen, 0x8000000000000001n, true],
+ [0x7fffffffffffffffn, 0x8000000000000001n, true],
+ [0x8000000000000000n, 0x8000000000000001n, true],
+ [0x8000000000000001n, 0x8000000000000001n, false],
+ [0xfffffffffffffffen, 0x8000000000000001n, false],
+ [0xffffffffffffffffn, 0x8000000000000001n, false],
+ [0x10000000000000000n, 0x8000000000000001n, false],
+ [0x10000000000000001n, 0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x800000000000000000000000n, 0x8000000000000001n, false],
+ [0x800000000000000000000001n, 0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x1000000000000000000000000n, 0x8000000000000001n, false],
+ [0x1000000000000000000000001n, 0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x8000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x8000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x8000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x8000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x8000000000000001n, true],
+ [-0x100000000000000000000000000000000n, -0x8000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x8000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x8000000000000001n, true],
+ [-0x80000000000000000000000000000001n, -0x8000000000000001n, true],
+ [-0x80000000000000000000000000000000n, -0x8000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x8000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x8000000000000001n, true],
+ [-0x1000000000000000000000001n, -0x8000000000000001n, true],
+ [-0x1000000000000000000000000n, -0x8000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, -0x8000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, -0x8000000000000001n, true],
+ [-0x800000000000000000000001n, -0x8000000000000001n, true],
+ [-0x800000000000000000000000n, -0x8000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, -0x8000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, -0x8000000000000001n, true],
+ [-0x10000000000000001n, -0x8000000000000001n, true],
+ [-0x10000000000000000n, -0x8000000000000001n, true],
+ [-0xffffffffffffffffn, -0x8000000000000001n, true],
+ [-0xfffffffffffffffen, -0x8000000000000001n, true],
+ [-0x8000000000000001n, -0x8000000000000001n, false],
+ [-0x8000000000000000n, -0x8000000000000001n, false],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, false],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, false],
+ [-0x100000001n, -0x8000000000000001n, false],
+ [-0x100000000n, -0x8000000000000001n, false],
+ [-0xffffffffn, -0x8000000000000001n, false],
+ [-0xfffffffen, -0x8000000000000001n, false],
+ [-0x80000001n, -0x8000000000000001n, false],
+ [-0x80000000n, -0x8000000000000001n, false],
+ [-0x7fffffffn, -0x8000000000000001n, false],
+ [-0x7ffffffen, -0x8000000000000001n, false],
+ [-2n, -0x8000000000000001n, false],
+ [-1n, -0x8000000000000001n, false],
+ [0n, -0x8000000000000001n, false],
+ [1n, -0x8000000000000001n, false],
+ [2n, -0x8000000000000001n, false],
+ [0x7ffffffen, -0x8000000000000001n, false],
+ [0x7fffffffn, -0x8000000000000001n, false],
+ [0x80000000n, -0x8000000000000001n, false],
+ [0x80000001n, -0x8000000000000001n, false],
+ [0xfffffffen, -0x8000000000000001n, false],
+ [0xffffffffn, -0x8000000000000001n, false],
+ [0x100000000n, -0x8000000000000001n, false],
+ [0x100000001n, -0x8000000000000001n, false],
+ [0x7ffffffffffffffen, -0x8000000000000001n, false],
+ [0x7fffffffffffffffn, -0x8000000000000001n, false],
+ [0x8000000000000000n, -0x8000000000000001n, false],
+ [0x8000000000000001n, -0x8000000000000001n, false],
+ [0xfffffffffffffffen, -0x8000000000000001n, false],
+ [0xffffffffffffffffn, -0x8000000000000001n, false],
+ [0x10000000000000000n, -0x8000000000000001n, false],
+ [0x10000000000000001n, -0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x800000000000000000000000n, -0x8000000000000001n, false],
+ [0x800000000000000000000001n, -0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x1000000000000000000000000n, -0x8000000000000001n, false],
+ [0x1000000000000000000000001n, -0x8000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x8000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x8000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x8000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x8000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x8000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x8000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x8000000000000000n, true],
+ [-0x100000000000000000000000000000000n, -0x8000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x8000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x8000000000000000n, true],
+ [-0x80000000000000000000000000000001n, -0x8000000000000000n, true],
+ [-0x80000000000000000000000000000000n, -0x8000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x8000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x8000000000000000n, true],
+ [-0x1000000000000000000000001n, -0x8000000000000000n, true],
+ [-0x1000000000000000000000000n, -0x8000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, -0x8000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, -0x8000000000000000n, true],
+ [-0x800000000000000000000001n, -0x8000000000000000n, true],
+ [-0x800000000000000000000000n, -0x8000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, -0x8000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, -0x8000000000000000n, true],
+ [-0x10000000000000001n, -0x8000000000000000n, true],
+ [-0x10000000000000000n, -0x8000000000000000n, true],
+ [-0xffffffffffffffffn, -0x8000000000000000n, true],
+ [-0xfffffffffffffffen, -0x8000000000000000n, true],
+ [-0x8000000000000001n, -0x8000000000000000n, true],
+ [-0x8000000000000000n, -0x8000000000000000n, false],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, false],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, false],
+ [-0x100000001n, -0x8000000000000000n, false],
+ [-0x100000000n, -0x8000000000000000n, false],
+ [-0xffffffffn, -0x8000000000000000n, false],
+ [-0xfffffffen, -0x8000000000000000n, false],
+ [-0x80000001n, -0x8000000000000000n, false],
+ [-0x80000000n, -0x8000000000000000n, false],
+ [-0x7fffffffn, -0x8000000000000000n, false],
+ [-0x7ffffffen, -0x8000000000000000n, false],
+ [-2n, -0x8000000000000000n, false],
+ [-1n, -0x8000000000000000n, false],
+ [0n, -0x8000000000000000n, false],
+ [1n, -0x8000000000000000n, false],
+ [2n, -0x8000000000000000n, false],
+ [0x7ffffffen, -0x8000000000000000n, false],
+ [0x7fffffffn, -0x8000000000000000n, false],
+ [0x80000000n, -0x8000000000000000n, false],
+ [0x80000001n, -0x8000000000000000n, false],
+ [0xfffffffen, -0x8000000000000000n, false],
+ [0xffffffffn, -0x8000000000000000n, false],
+ [0x100000000n, -0x8000000000000000n, false],
+ [0x100000001n, -0x8000000000000000n, false],
+ [0x7ffffffffffffffen, -0x8000000000000000n, false],
+ [0x7fffffffffffffffn, -0x8000000000000000n, false],
+ [0x8000000000000000n, -0x8000000000000000n, false],
+ [0x8000000000000001n, -0x8000000000000000n, false],
+ [0xfffffffffffffffen, -0x8000000000000000n, false],
+ [0xffffffffffffffffn, -0x8000000000000000n, false],
+ [0x10000000000000000n, -0x8000000000000000n, false],
+ [0x10000000000000001n, -0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x800000000000000000000000n, -0x8000000000000000n, false],
+ [0x800000000000000000000001n, -0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x1000000000000000000000000n, -0x8000000000000000n, false],
+ [0x1000000000000000000000001n, -0x8000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x8000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x8000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x8000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x8000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x8000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x8000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, -0x7fffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, -0x7fffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, -0x7fffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, true],
+ [-0x1000000000000000000000001n, -0x7fffffffffffffffn, true],
+ [-0x1000000000000000000000000n, -0x7fffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, -0x7fffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, -0x7fffffffffffffffn, true],
+ [-0x800000000000000000000001n, -0x7fffffffffffffffn, true],
+ [-0x800000000000000000000000n, -0x7fffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, -0x7fffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, -0x7fffffffffffffffn, true],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, true],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, true],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, true],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, true],
+ [-0x8000000000000001n, -0x7fffffffffffffffn, true],
+ [-0x8000000000000000n, -0x7fffffffffffffffn, true],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, false],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, false],
+ [-0x100000001n, -0x7fffffffffffffffn, false],
+ [-0x100000000n, -0x7fffffffffffffffn, false],
+ [-0xffffffffn, -0x7fffffffffffffffn, false],
+ [-0xfffffffen, -0x7fffffffffffffffn, false],
+ [-0x80000001n, -0x7fffffffffffffffn, false],
+ [-0x80000000n, -0x7fffffffffffffffn, false],
+ [-0x7fffffffn, -0x7fffffffffffffffn, false],
+ [-0x7ffffffen, -0x7fffffffffffffffn, false],
+ [-2n, -0x7fffffffffffffffn, false],
+ [-1n, -0x7fffffffffffffffn, false],
+ [0n, -0x7fffffffffffffffn, false],
+ [1n, -0x7fffffffffffffffn, false],
+ [2n, -0x7fffffffffffffffn, false],
+ [0x7ffffffen, -0x7fffffffffffffffn, false],
+ [0x7fffffffn, -0x7fffffffffffffffn, false],
+ [0x80000000n, -0x7fffffffffffffffn, false],
+ [0x80000001n, -0x7fffffffffffffffn, false],
+ [0xfffffffen, -0x7fffffffffffffffn, false],
+ [0xffffffffn, -0x7fffffffffffffffn, false],
+ [0x100000000n, -0x7fffffffffffffffn, false],
+ [0x100000001n, -0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x8000000000000000n, -0x7fffffffffffffffn, false],
+ [0x8000000000000001n, -0x7fffffffffffffffn, false],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x10000000000000000n, -0x7fffffffffffffffn, false],
+ [0x10000000000000001n, -0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x800000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x800000000000000000000001n, -0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, -0x7ffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, -0x7ffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, -0x7ffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, true],
+ [-0x1000000000000000000000001n, -0x7ffffffffffffffen, true],
+ [-0x1000000000000000000000000n, -0x7ffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, -0x7ffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, -0x7ffffffffffffffen, true],
+ [-0x800000000000000000000001n, -0x7ffffffffffffffen, true],
+ [-0x800000000000000000000000n, -0x7ffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, -0x7ffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, -0x7ffffffffffffffen, true],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, true],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, true],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, true],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, true],
+ [-0x8000000000000001n, -0x7ffffffffffffffen, true],
+ [-0x8000000000000000n, -0x7ffffffffffffffen, true],
+ [-0x7fffffffffffffffn, -0x7ffffffffffffffen, true],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, false],
+ [-0x100000001n, -0x7ffffffffffffffen, false],
+ [-0x100000000n, -0x7ffffffffffffffen, false],
+ [-0xffffffffn, -0x7ffffffffffffffen, false],
+ [-0xfffffffen, -0x7ffffffffffffffen, false],
+ [-0x80000001n, -0x7ffffffffffffffen, false],
+ [-0x80000000n, -0x7ffffffffffffffen, false],
+ [-0x7fffffffn, -0x7ffffffffffffffen, false],
+ [-0x7ffffffen, -0x7ffffffffffffffen, false],
+ [-2n, -0x7ffffffffffffffen, false],
+ [-1n, -0x7ffffffffffffffen, false],
+ [0n, -0x7ffffffffffffffen, false],
+ [1n, -0x7ffffffffffffffen, false],
+ [2n, -0x7ffffffffffffffen, false],
+ [0x7ffffffen, -0x7ffffffffffffffen, false],
+ [0x7fffffffn, -0x7ffffffffffffffen, false],
+ [0x80000000n, -0x7ffffffffffffffen, false],
+ [0x80000001n, -0x7ffffffffffffffen, false],
+ [0xfffffffen, -0x7ffffffffffffffen, false],
+ [0xffffffffn, -0x7ffffffffffffffen, false],
+ [0x100000000n, -0x7ffffffffffffffen, false],
+ [0x100000001n, -0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x8000000000000000n, -0x7ffffffffffffffen, false],
+ [0x8000000000000001n, -0x7ffffffffffffffen, false],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x10000000000000000n, -0x7ffffffffffffffen, false],
+ [0x10000000000000001n, -0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x800000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x800000000000000000000001n, -0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, 0xfffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, 0xfffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, 0xfffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, true],
+ [-0x1000000000000000000000001n, 0xfffffffffffffffen, true],
+ [-0x1000000000000000000000000n, 0xfffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0xfffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0xfffffffffffffffen, true],
+ [-0x800000000000000000000001n, 0xfffffffffffffffen, true],
+ [-0x800000000000000000000000n, 0xfffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0xfffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0xfffffffffffffffen, true],
+ [-0x10000000000000001n, 0xfffffffffffffffen, true],
+ [-0x10000000000000000n, 0xfffffffffffffffen, true],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, true],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, true],
+ [-0x8000000000000001n, 0xfffffffffffffffen, true],
+ [-0x8000000000000000n, 0xfffffffffffffffen, true],
+ [-0x7fffffffffffffffn, 0xfffffffffffffffen, true],
+ [-0x7ffffffffffffffen, 0xfffffffffffffffen, true],
+ [-0x100000001n, 0xfffffffffffffffen, true],
+ [-0x100000000n, 0xfffffffffffffffen, true],
+ [-0xffffffffn, 0xfffffffffffffffen, true],
+ [-0xfffffffen, 0xfffffffffffffffen, true],
+ [-0x80000001n, 0xfffffffffffffffen, true],
+ [-0x80000000n, 0xfffffffffffffffen, true],
+ [-0x7fffffffn, 0xfffffffffffffffen, true],
+ [-0x7ffffffen, 0xfffffffffffffffen, true],
+ [-2n, 0xfffffffffffffffen, true],
+ [-1n, 0xfffffffffffffffen, true],
+ [0n, 0xfffffffffffffffen, true],
+ [1n, 0xfffffffffffffffen, true],
+ [2n, 0xfffffffffffffffen, true],
+ [0x7ffffffen, 0xfffffffffffffffen, true],
+ [0x7fffffffn, 0xfffffffffffffffen, true],
+ [0x80000000n, 0xfffffffffffffffen, true],
+ [0x80000001n, 0xfffffffffffffffen, true],
+ [0xfffffffen, 0xfffffffffffffffen, true],
+ [0xffffffffn, 0xfffffffffffffffen, true],
+ [0x100000000n, 0xfffffffffffffffen, true],
+ [0x100000001n, 0xfffffffffffffffen, true],
+ [0x7ffffffffffffffen, 0xfffffffffffffffen, true],
+ [0x7fffffffffffffffn, 0xfffffffffffffffen, true],
+ [0x8000000000000000n, 0xfffffffffffffffen, true],
+ [0x8000000000000001n, 0xfffffffffffffffen, true],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, false],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x10000000000000000n, 0xfffffffffffffffen, false],
+ [0x10000000000000001n, 0xfffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x800000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x800000000000000000000001n, 0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0xfffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, 0xffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, 0xffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, 0xffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, 0xffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, 0xffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0xffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0xffffffffffffffffn, true],
+ [-0x800000000000000000000001n, 0xffffffffffffffffn, true],
+ [-0x800000000000000000000000n, 0xffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0xffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0xffffffffffffffffn, true],
+ [-0x10000000000000001n, 0xffffffffffffffffn, true],
+ [-0x10000000000000000n, 0xffffffffffffffffn, true],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, true],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, true],
+ [-0x8000000000000001n, 0xffffffffffffffffn, true],
+ [-0x8000000000000000n, 0xffffffffffffffffn, true],
+ [-0x7fffffffffffffffn, 0xffffffffffffffffn, true],
+ [-0x7ffffffffffffffen, 0xffffffffffffffffn, true],
+ [-0x100000001n, 0xffffffffffffffffn, true],
+ [-0x100000000n, 0xffffffffffffffffn, true],
+ [-0xffffffffn, 0xffffffffffffffffn, true],
+ [-0xfffffffen, 0xffffffffffffffffn, true],
+ [-0x80000001n, 0xffffffffffffffffn, true],
+ [-0x80000000n, 0xffffffffffffffffn, true],
+ [-0x7fffffffn, 0xffffffffffffffffn, true],
+ [-0x7ffffffen, 0xffffffffffffffffn, true],
+ [-2n, 0xffffffffffffffffn, true],
+ [-1n, 0xffffffffffffffffn, true],
+ [0n, 0xffffffffffffffffn, true],
+ [1n, 0xffffffffffffffffn, true],
+ [2n, 0xffffffffffffffffn, true],
+ [0x7ffffffen, 0xffffffffffffffffn, true],
+ [0x7fffffffn, 0xffffffffffffffffn, true],
+ [0x80000000n, 0xffffffffffffffffn, true],
+ [0x80000001n, 0xffffffffffffffffn, true],
+ [0xfffffffen, 0xffffffffffffffffn, true],
+ [0xffffffffn, 0xffffffffffffffffn, true],
+ [0x100000000n, 0xffffffffffffffffn, true],
+ [0x100000001n, 0xffffffffffffffffn, true],
+ [0x7ffffffffffffffen, 0xffffffffffffffffn, true],
+ [0x7fffffffffffffffn, 0xffffffffffffffffn, true],
+ [0x8000000000000000n, 0xffffffffffffffffn, true],
+ [0x8000000000000001n, 0xffffffffffffffffn, true],
+ [0xfffffffffffffffen, 0xffffffffffffffffn, true],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x10000000000000000n, 0xffffffffffffffffn, false],
+ [0x10000000000000001n, 0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x800000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x800000000000000000000001n, 0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x1000000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x10000000000000000n, true],
+ [-0x100000000000000000000000000000000n, 0x10000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x10000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x10000000000000000n, true],
+ [-0x80000000000000000000000000000001n, 0x10000000000000000n, true],
+ [-0x80000000000000000000000000000000n, 0x10000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x10000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x10000000000000000n, true],
+ [-0x1000000000000000000000001n, 0x10000000000000000n, true],
+ [-0x1000000000000000000000000n, 0x10000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x10000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x10000000000000000n, true],
+ [-0x800000000000000000000001n, 0x10000000000000000n, true],
+ [-0x800000000000000000000000n, 0x10000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x10000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x10000000000000000n, true],
+ [-0x10000000000000001n, 0x10000000000000000n, true],
+ [-0x10000000000000000n, 0x10000000000000000n, true],
+ [-0xffffffffffffffffn, 0x10000000000000000n, true],
+ [-0xfffffffffffffffen, 0x10000000000000000n, true],
+ [-0x8000000000000001n, 0x10000000000000000n, true],
+ [-0x8000000000000000n, 0x10000000000000000n, true],
+ [-0x7fffffffffffffffn, 0x10000000000000000n, true],
+ [-0x7ffffffffffffffen, 0x10000000000000000n, true],
+ [-0x100000001n, 0x10000000000000000n, true],
+ [-0x100000000n, 0x10000000000000000n, true],
+ [-0xffffffffn, 0x10000000000000000n, true],
+ [-0xfffffffen, 0x10000000000000000n, true],
+ [-0x80000001n, 0x10000000000000000n, true],
+ [-0x80000000n, 0x10000000000000000n, true],
+ [-0x7fffffffn, 0x10000000000000000n, true],
+ [-0x7ffffffen, 0x10000000000000000n, true],
+ [-2n, 0x10000000000000000n, true],
+ [-1n, 0x10000000000000000n, true],
+ [0n, 0x10000000000000000n, true],
+ [1n, 0x10000000000000000n, true],
+ [2n, 0x10000000000000000n, true],
+ [0x7ffffffen, 0x10000000000000000n, true],
+ [0x7fffffffn, 0x10000000000000000n, true],
+ [0x80000000n, 0x10000000000000000n, true],
+ [0x80000001n, 0x10000000000000000n, true],
+ [0xfffffffen, 0x10000000000000000n, true],
+ [0xffffffffn, 0x10000000000000000n, true],
+ [0x100000000n, 0x10000000000000000n, true],
+ [0x100000001n, 0x10000000000000000n, true],
+ [0x7ffffffffffffffen, 0x10000000000000000n, true],
+ [0x7fffffffffffffffn, 0x10000000000000000n, true],
+ [0x8000000000000000n, 0x10000000000000000n, true],
+ [0x8000000000000001n, 0x10000000000000000n, true],
+ [0xfffffffffffffffen, 0x10000000000000000n, true],
+ [0xffffffffffffffffn, 0x10000000000000000n, true],
+ [0x10000000000000000n, 0x10000000000000000n, false],
+ [0x10000000000000001n, 0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x800000000000000000000000n, 0x10000000000000000n, false],
+ [0x800000000000000000000001n, 0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x1000000000000000000000000n, 0x10000000000000000n, false],
+ [0x1000000000000000000000001n, 0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x10000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x10000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x10000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x10000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x10000000000000001n, true],
+ [-0x100000000000000000000000000000000n, 0x10000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x10000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x10000000000000001n, true],
+ [-0x80000000000000000000000000000001n, 0x10000000000000001n, true],
+ [-0x80000000000000000000000000000000n, 0x10000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x10000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x10000000000000001n, true],
+ [-0x1000000000000000000000001n, 0x10000000000000001n, true],
+ [-0x1000000000000000000000000n, 0x10000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x10000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x10000000000000001n, true],
+ [-0x800000000000000000000001n, 0x10000000000000001n, true],
+ [-0x800000000000000000000000n, 0x10000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x10000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x10000000000000001n, true],
+ [-0x10000000000000001n, 0x10000000000000001n, true],
+ [-0x10000000000000000n, 0x10000000000000001n, true],
+ [-0xffffffffffffffffn, 0x10000000000000001n, true],
+ [-0xfffffffffffffffen, 0x10000000000000001n, true],
+ [-0x8000000000000001n, 0x10000000000000001n, true],
+ [-0x8000000000000000n, 0x10000000000000001n, true],
+ [-0x7fffffffffffffffn, 0x10000000000000001n, true],
+ [-0x7ffffffffffffffen, 0x10000000000000001n, true],
+ [-0x100000001n, 0x10000000000000001n, true],
+ [-0x100000000n, 0x10000000000000001n, true],
+ [-0xffffffffn, 0x10000000000000001n, true],
+ [-0xfffffffen, 0x10000000000000001n, true],
+ [-0x80000001n, 0x10000000000000001n, true],
+ [-0x80000000n, 0x10000000000000001n, true],
+ [-0x7fffffffn, 0x10000000000000001n, true],
+ [-0x7ffffffen, 0x10000000000000001n, true],
+ [-2n, 0x10000000000000001n, true],
+ [-1n, 0x10000000000000001n, true],
+ [0n, 0x10000000000000001n, true],
+ [1n, 0x10000000000000001n, true],
+ [2n, 0x10000000000000001n, true],
+ [0x7ffffffen, 0x10000000000000001n, true],
+ [0x7fffffffn, 0x10000000000000001n, true],
+ [0x80000000n, 0x10000000000000001n, true],
+ [0x80000001n, 0x10000000000000001n, true],
+ [0xfffffffen, 0x10000000000000001n, true],
+ [0xffffffffn, 0x10000000000000001n, true],
+ [0x100000000n, 0x10000000000000001n, true],
+ [0x100000001n, 0x10000000000000001n, true],
+ [0x7ffffffffffffffen, 0x10000000000000001n, true],
+ [0x7fffffffffffffffn, 0x10000000000000001n, true],
+ [0x8000000000000000n, 0x10000000000000001n, true],
+ [0x8000000000000001n, 0x10000000000000001n, true],
+ [0xfffffffffffffffen, 0x10000000000000001n, true],
+ [0xffffffffffffffffn, 0x10000000000000001n, true],
+ [0x10000000000000000n, 0x10000000000000001n, true],
+ [0x10000000000000001n, 0x10000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x800000000000000000000000n, 0x10000000000000001n, false],
+ [0x800000000000000000000001n, 0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x1000000000000000000000000n, 0x10000000000000001n, false],
+ [0x1000000000000000000000001n, 0x10000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x10000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x10000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x10000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x10000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x10000000000000001n, true],
+ [-0x100000000000000000000000000000000n, -0x10000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x10000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x10000000000000001n, true],
+ [-0x80000000000000000000000000000001n, -0x10000000000000001n, true],
+ [-0x80000000000000000000000000000000n, -0x10000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x10000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x10000000000000001n, true],
+ [-0x1000000000000000000000001n, -0x10000000000000001n, true],
+ [-0x1000000000000000000000000n, -0x10000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, -0x10000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, -0x10000000000000001n, true],
+ [-0x800000000000000000000001n, -0x10000000000000001n, true],
+ [-0x800000000000000000000000n, -0x10000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, -0x10000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, -0x10000000000000001n, true],
+ [-0x10000000000000001n, -0x10000000000000001n, false],
+ [-0x10000000000000000n, -0x10000000000000001n, false],
+ [-0xffffffffffffffffn, -0x10000000000000001n, false],
+ [-0xfffffffffffffffen, -0x10000000000000001n, false],
+ [-0x8000000000000001n, -0x10000000000000001n, false],
+ [-0x8000000000000000n, -0x10000000000000001n, false],
+ [-0x7fffffffffffffffn, -0x10000000000000001n, false],
+ [-0x7ffffffffffffffen, -0x10000000000000001n, false],
+ [-0x100000001n, -0x10000000000000001n, false],
+ [-0x100000000n, -0x10000000000000001n, false],
+ [-0xffffffffn, -0x10000000000000001n, false],
+ [-0xfffffffen, -0x10000000000000001n, false],
+ [-0x80000001n, -0x10000000000000001n, false],
+ [-0x80000000n, -0x10000000000000001n, false],
+ [-0x7fffffffn, -0x10000000000000001n, false],
+ [-0x7ffffffen, -0x10000000000000001n, false],
+ [-2n, -0x10000000000000001n, false],
+ [-1n, -0x10000000000000001n, false],
+ [0n, -0x10000000000000001n, false],
+ [1n, -0x10000000000000001n, false],
+ [2n, -0x10000000000000001n, false],
+ [0x7ffffffen, -0x10000000000000001n, false],
+ [0x7fffffffn, -0x10000000000000001n, false],
+ [0x80000000n, -0x10000000000000001n, false],
+ [0x80000001n, -0x10000000000000001n, false],
+ [0xfffffffen, -0x10000000000000001n, false],
+ [0xffffffffn, -0x10000000000000001n, false],
+ [0x100000000n, -0x10000000000000001n, false],
+ [0x100000001n, -0x10000000000000001n, false],
+ [0x7ffffffffffffffen, -0x10000000000000001n, false],
+ [0x7fffffffffffffffn, -0x10000000000000001n, false],
+ [0x8000000000000000n, -0x10000000000000001n, false],
+ [0x8000000000000001n, -0x10000000000000001n, false],
+ [0xfffffffffffffffen, -0x10000000000000001n, false],
+ [0xffffffffffffffffn, -0x10000000000000001n, false],
+ [0x10000000000000000n, -0x10000000000000001n, false],
+ [0x10000000000000001n, -0x10000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x800000000000000000000000n, -0x10000000000000001n, false],
+ [0x800000000000000000000001n, -0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x1000000000000000000000000n, -0x10000000000000001n, false],
+ [0x1000000000000000000000001n, -0x10000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x10000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x10000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x10000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x10000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x10000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x10000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x10000000000000000n, true],
+ [-0x100000000000000000000000000000000n, -0x10000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x10000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x10000000000000000n, true],
+ [-0x80000000000000000000000000000001n, -0x10000000000000000n, true],
+ [-0x80000000000000000000000000000000n, -0x10000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x10000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x10000000000000000n, true],
+ [-0x1000000000000000000000001n, -0x10000000000000000n, true],
+ [-0x1000000000000000000000000n, -0x10000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, -0x10000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, -0x10000000000000000n, true],
+ [-0x800000000000000000000001n, -0x10000000000000000n, true],
+ [-0x800000000000000000000000n, -0x10000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, -0x10000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, -0x10000000000000000n, true],
+ [-0x10000000000000001n, -0x10000000000000000n, true],
+ [-0x10000000000000000n, -0x10000000000000000n, false],
+ [-0xffffffffffffffffn, -0x10000000000000000n, false],
+ [-0xfffffffffffffffen, -0x10000000000000000n, false],
+ [-0x8000000000000001n, -0x10000000000000000n, false],
+ [-0x8000000000000000n, -0x10000000000000000n, false],
+ [-0x7fffffffffffffffn, -0x10000000000000000n, false],
+ [-0x7ffffffffffffffen, -0x10000000000000000n, false],
+ [-0x100000001n, -0x10000000000000000n, false],
+ [-0x100000000n, -0x10000000000000000n, false],
+ [-0xffffffffn, -0x10000000000000000n, false],
+ [-0xfffffffen, -0x10000000000000000n, false],
+ [-0x80000001n, -0x10000000000000000n, false],
+ [-0x80000000n, -0x10000000000000000n, false],
+ [-0x7fffffffn, -0x10000000000000000n, false],
+ [-0x7ffffffen, -0x10000000000000000n, false],
+ [-2n, -0x10000000000000000n, false],
+ [-1n, -0x10000000000000000n, false],
+ [0n, -0x10000000000000000n, false],
+ [1n, -0x10000000000000000n, false],
+ [2n, -0x10000000000000000n, false],
+ [0x7ffffffen, -0x10000000000000000n, false],
+ [0x7fffffffn, -0x10000000000000000n, false],
+ [0x80000000n, -0x10000000000000000n, false],
+ [0x80000001n, -0x10000000000000000n, false],
+ [0xfffffffen, -0x10000000000000000n, false],
+ [0xffffffffn, -0x10000000000000000n, false],
+ [0x100000000n, -0x10000000000000000n, false],
+ [0x100000001n, -0x10000000000000000n, false],
+ [0x7ffffffffffffffen, -0x10000000000000000n, false],
+ [0x7fffffffffffffffn, -0x10000000000000000n, false],
+ [0x8000000000000000n, -0x10000000000000000n, false],
+ [0x8000000000000001n, -0x10000000000000000n, false],
+ [0xfffffffffffffffen, -0x10000000000000000n, false],
+ [0xffffffffffffffffn, -0x10000000000000000n, false],
+ [0x10000000000000000n, -0x10000000000000000n, false],
+ [0x10000000000000001n, -0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x800000000000000000000000n, -0x10000000000000000n, false],
+ [0x800000000000000000000001n, -0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x1000000000000000000000000n, -0x10000000000000000n, false],
+ [0x1000000000000000000000001n, -0x10000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x10000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x10000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x10000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x10000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x10000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x10000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0xffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, -0xffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, -0xffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, -0xffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, -0xffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, -0xffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, -0xffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, -0xffffffffffffffffn, true],
+ [-0x800000000000000000000001n, -0xffffffffffffffffn, true],
+ [-0x800000000000000000000000n, -0xffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, -0xffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, -0xffffffffffffffffn, true],
+ [-0x10000000000000001n, -0xffffffffffffffffn, true],
+ [-0x10000000000000000n, -0xffffffffffffffffn, true],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, false],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, false],
+ [-0x8000000000000001n, -0xffffffffffffffffn, false],
+ [-0x8000000000000000n, -0xffffffffffffffffn, false],
+ [-0x7fffffffffffffffn, -0xffffffffffffffffn, false],
+ [-0x7ffffffffffffffen, -0xffffffffffffffffn, false],
+ [-0x100000001n, -0xffffffffffffffffn, false],
+ [-0x100000000n, -0xffffffffffffffffn, false],
+ [-0xffffffffn, -0xffffffffffffffffn, false],
+ [-0xfffffffen, -0xffffffffffffffffn, false],
+ [-0x80000001n, -0xffffffffffffffffn, false],
+ [-0x80000000n, -0xffffffffffffffffn, false],
+ [-0x7fffffffn, -0xffffffffffffffffn, false],
+ [-0x7ffffffen, -0xffffffffffffffffn, false],
+ [-2n, -0xffffffffffffffffn, false],
+ [-1n, -0xffffffffffffffffn, false],
+ [0n, -0xffffffffffffffffn, false],
+ [1n, -0xffffffffffffffffn, false],
+ [2n, -0xffffffffffffffffn, false],
+ [0x7ffffffen, -0xffffffffffffffffn, false],
+ [0x7fffffffn, -0xffffffffffffffffn, false],
+ [0x80000000n, -0xffffffffffffffffn, false],
+ [0x80000001n, -0xffffffffffffffffn, false],
+ [0xfffffffen, -0xffffffffffffffffn, false],
+ [0xffffffffn, -0xffffffffffffffffn, false],
+ [0x100000000n, -0xffffffffffffffffn, false],
+ [0x100000001n, -0xffffffffffffffffn, false],
+ [0x7ffffffffffffffen, -0xffffffffffffffffn, false],
+ [0x7fffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x8000000000000000n, -0xffffffffffffffffn, false],
+ [0x8000000000000001n, -0xffffffffffffffffn, false],
+ [0xfffffffffffffffen, -0xffffffffffffffffn, false],
+ [0xffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x10000000000000000n, -0xffffffffffffffffn, false],
+ [0x10000000000000001n, -0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x800000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x800000000000000000000001n, -0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0xffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0xffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0xffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0xffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0xfffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, -0xfffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, -0xfffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, -0xfffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, true],
+ [-0x1000000000000000000000001n, -0xfffffffffffffffen, true],
+ [-0x1000000000000000000000000n, -0xfffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, -0xfffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, -0xfffffffffffffffen, true],
+ [-0x800000000000000000000001n, -0xfffffffffffffffen, true],
+ [-0x800000000000000000000000n, -0xfffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, -0xfffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, -0xfffffffffffffffen, true],
+ [-0x10000000000000001n, -0xfffffffffffffffen, true],
+ [-0x10000000000000000n, -0xfffffffffffffffen, true],
+ [-0xffffffffffffffffn, -0xfffffffffffffffen, true],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, false],
+ [-0x8000000000000001n, -0xfffffffffffffffen, false],
+ [-0x8000000000000000n, -0xfffffffffffffffen, false],
+ [-0x7fffffffffffffffn, -0xfffffffffffffffen, false],
+ [-0x7ffffffffffffffen, -0xfffffffffffffffen, false],
+ [-0x100000001n, -0xfffffffffffffffen, false],
+ [-0x100000000n, -0xfffffffffffffffen, false],
+ [-0xffffffffn, -0xfffffffffffffffen, false],
+ [-0xfffffffen, -0xfffffffffffffffen, false],
+ [-0x80000001n, -0xfffffffffffffffen, false],
+ [-0x80000000n, -0xfffffffffffffffen, false],
+ [-0x7fffffffn, -0xfffffffffffffffen, false],
+ [-0x7ffffffen, -0xfffffffffffffffen, false],
+ [-2n, -0xfffffffffffffffen, false],
+ [-1n, -0xfffffffffffffffen, false],
+ [0n, -0xfffffffffffffffen, false],
+ [1n, -0xfffffffffffffffen, false],
+ [2n, -0xfffffffffffffffen, false],
+ [0x7ffffffen, -0xfffffffffffffffen, false],
+ [0x7fffffffn, -0xfffffffffffffffen, false],
+ [0x80000000n, -0xfffffffffffffffen, false],
+ [0x80000001n, -0xfffffffffffffffen, false],
+ [0xfffffffen, -0xfffffffffffffffen, false],
+ [0xffffffffn, -0xfffffffffffffffen, false],
+ [0x100000000n, -0xfffffffffffffffen, false],
+ [0x100000001n, -0xfffffffffffffffen, false],
+ [0x7ffffffffffffffen, -0xfffffffffffffffen, false],
+ [0x7fffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x8000000000000000n, -0xfffffffffffffffen, false],
+ [0x8000000000000001n, -0xfffffffffffffffen, false],
+ [0xfffffffffffffffen, -0xfffffffffffffffen, false],
+ [0xffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x10000000000000000n, -0xfffffffffffffffen, false],
+ [0x10000000000000001n, -0xfffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x800000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x800000000000000000000001n, -0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0xfffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0xfffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0xfffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0xfffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-0x800000000000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x800000000000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-0x10000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x10000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-0x8000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x8000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-0x100000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x100000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0xffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0xfffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-0x80000001n, 0x7ffffffffffffffffffffffen, true],
+ [-0x80000000n, 0x7ffffffffffffffffffffffen, true],
+ [-0x7fffffffn, 0x7ffffffffffffffffffffffen, true],
+ [-0x7ffffffen, 0x7ffffffffffffffffffffffen, true],
+ [-2n, 0x7ffffffffffffffffffffffen, true],
+ [-1n, 0x7ffffffffffffffffffffffen, true],
+ [0n, 0x7ffffffffffffffffffffffen, true],
+ [1n, 0x7ffffffffffffffffffffffen, true],
+ [2n, 0x7ffffffffffffffffffffffen, true],
+ [0x7ffffffen, 0x7ffffffffffffffffffffffen, true],
+ [0x7fffffffn, 0x7ffffffffffffffffffffffen, true],
+ [0x80000000n, 0x7ffffffffffffffffffffffen, true],
+ [0x80000001n, 0x7ffffffffffffffffffffffen, true],
+ [0xfffffffen, 0x7ffffffffffffffffffffffen, true],
+ [0xffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [0x100000000n, 0x7ffffffffffffffffffffffen, true],
+ [0x100000001n, 0x7ffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [0x8000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [0x8000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [0xfffffffffffffffen, 0x7ffffffffffffffffffffffen, true],
+ [0xffffffffffffffffn, 0x7ffffffffffffffffffffffen, true],
+ [0x10000000000000000n, 0x7ffffffffffffffffffffffen, true],
+ [0x10000000000000001n, 0x7ffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x800000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x800000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-0x800000000000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x800000000000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-0x10000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x10000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-0x8000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x8000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-0x100000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x100000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0xffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0xfffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-0x80000001n, 0x7fffffffffffffffffffffffn, true],
+ [-0x80000000n, 0x7fffffffffffffffffffffffn, true],
+ [-0x7fffffffn, 0x7fffffffffffffffffffffffn, true],
+ [-0x7ffffffen, 0x7fffffffffffffffffffffffn, true],
+ [-2n, 0x7fffffffffffffffffffffffn, true],
+ [-1n, 0x7fffffffffffffffffffffffn, true],
+ [0n, 0x7fffffffffffffffffffffffn, true],
+ [1n, 0x7fffffffffffffffffffffffn, true],
+ [2n, 0x7fffffffffffffffffffffffn, true],
+ [0x7ffffffen, 0x7fffffffffffffffffffffffn, true],
+ [0x7fffffffn, 0x7fffffffffffffffffffffffn, true],
+ [0x80000000n, 0x7fffffffffffffffffffffffn, true],
+ [0x80000001n, 0x7fffffffffffffffffffffffn, true],
+ [0xfffffffen, 0x7fffffffffffffffffffffffn, true],
+ [0xffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [0x100000000n, 0x7fffffffffffffffffffffffn, true],
+ [0x100000001n, 0x7fffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [0x8000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [0x8000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [0xfffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [0xffffffffffffffffn, 0x7fffffffffffffffffffffffn, true],
+ [0x10000000000000000n, 0x7fffffffffffffffffffffffn, true],
+ [0x10000000000000001n, 0x7fffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [0x800000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x800000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x800000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, 0x800000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, true],
+ [-0x80000000000000000000000000000001n, 0x800000000000000000000000n, true],
+ [-0x80000000000000000000000000000000n, 0x800000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, true],
+ [-0x1000000000000000000000001n, 0x800000000000000000000000n, true],
+ [-0x1000000000000000000000000n, 0x800000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x800000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x800000000000000000000000n, true],
+ [-0x800000000000000000000001n, 0x800000000000000000000000n, true],
+ [-0x800000000000000000000000n, 0x800000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x800000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x800000000000000000000000n, true],
+ [-0x10000000000000001n, 0x800000000000000000000000n, true],
+ [-0x10000000000000000n, 0x800000000000000000000000n, true],
+ [-0xffffffffffffffffn, 0x800000000000000000000000n, true],
+ [-0xfffffffffffffffen, 0x800000000000000000000000n, true],
+ [-0x8000000000000001n, 0x800000000000000000000000n, true],
+ [-0x8000000000000000n, 0x800000000000000000000000n, true],
+ [-0x7fffffffffffffffn, 0x800000000000000000000000n, true],
+ [-0x7ffffffffffffffen, 0x800000000000000000000000n, true],
+ [-0x100000001n, 0x800000000000000000000000n, true],
+ [-0x100000000n, 0x800000000000000000000000n, true],
+ [-0xffffffffn, 0x800000000000000000000000n, true],
+ [-0xfffffffen, 0x800000000000000000000000n, true],
+ [-0x80000001n, 0x800000000000000000000000n, true],
+ [-0x80000000n, 0x800000000000000000000000n, true],
+ [-0x7fffffffn, 0x800000000000000000000000n, true],
+ [-0x7ffffffen, 0x800000000000000000000000n, true],
+ [-2n, 0x800000000000000000000000n, true],
+ [-1n, 0x800000000000000000000000n, true],
+ [0n, 0x800000000000000000000000n, true],
+ [1n, 0x800000000000000000000000n, true],
+ [2n, 0x800000000000000000000000n, true],
+ [0x7ffffffen, 0x800000000000000000000000n, true],
+ [0x7fffffffn, 0x800000000000000000000000n, true],
+ [0x80000000n, 0x800000000000000000000000n, true],
+ [0x80000001n, 0x800000000000000000000000n, true],
+ [0xfffffffen, 0x800000000000000000000000n, true],
+ [0xffffffffn, 0x800000000000000000000000n, true],
+ [0x100000000n, 0x800000000000000000000000n, true],
+ [0x100000001n, 0x800000000000000000000000n, true],
+ [0x7ffffffffffffffen, 0x800000000000000000000000n, true],
+ [0x7fffffffffffffffn, 0x800000000000000000000000n, true],
+ [0x8000000000000000n, 0x800000000000000000000000n, true],
+ [0x8000000000000001n, 0x800000000000000000000000n, true],
+ [0xfffffffffffffffen, 0x800000000000000000000000n, true],
+ [0xffffffffffffffffn, 0x800000000000000000000000n, true],
+ [0x10000000000000000n, 0x800000000000000000000000n, true],
+ [0x10000000000000001n, 0x800000000000000000000000n, true],
+ [0x7ffffffffffffffffffffffen, 0x800000000000000000000000n, true],
+ [0x7fffffffffffffffffffffffn, 0x800000000000000000000000n, true],
+ [0x800000000000000000000000n, 0x800000000000000000000000n, false],
+ [0x800000000000000000000001n, 0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [0x1000000000000000000000000n, 0x800000000000000000000000n, false],
+ [0x1000000000000000000000001n, 0x800000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x800000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x800000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, 0x800000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, true],
+ [-0x80000000000000000000000000000001n, 0x800000000000000000000001n, true],
+ [-0x80000000000000000000000000000000n, 0x800000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, true],
+ [-0x1000000000000000000000001n, 0x800000000000000000000001n, true],
+ [-0x1000000000000000000000000n, 0x800000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x800000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x800000000000000000000001n, true],
+ [-0x800000000000000000000001n, 0x800000000000000000000001n, true],
+ [-0x800000000000000000000000n, 0x800000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x800000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x800000000000000000000001n, true],
+ [-0x10000000000000001n, 0x800000000000000000000001n, true],
+ [-0x10000000000000000n, 0x800000000000000000000001n, true],
+ [-0xffffffffffffffffn, 0x800000000000000000000001n, true],
+ [-0xfffffffffffffffen, 0x800000000000000000000001n, true],
+ [-0x8000000000000001n, 0x800000000000000000000001n, true],
+ [-0x8000000000000000n, 0x800000000000000000000001n, true],
+ [-0x7fffffffffffffffn, 0x800000000000000000000001n, true],
+ [-0x7ffffffffffffffen, 0x800000000000000000000001n, true],
+ [-0x100000001n, 0x800000000000000000000001n, true],
+ [-0x100000000n, 0x800000000000000000000001n, true],
+ [-0xffffffffn, 0x800000000000000000000001n, true],
+ [-0xfffffffen, 0x800000000000000000000001n, true],
+ [-0x80000001n, 0x800000000000000000000001n, true],
+ [-0x80000000n, 0x800000000000000000000001n, true],
+ [-0x7fffffffn, 0x800000000000000000000001n, true],
+ [-0x7ffffffen, 0x800000000000000000000001n, true],
+ [-2n, 0x800000000000000000000001n, true],
+ [-1n, 0x800000000000000000000001n, true],
+ [0n, 0x800000000000000000000001n, true],
+ [1n, 0x800000000000000000000001n, true],
+ [2n, 0x800000000000000000000001n, true],
+ [0x7ffffffen, 0x800000000000000000000001n, true],
+ [0x7fffffffn, 0x800000000000000000000001n, true],
+ [0x80000000n, 0x800000000000000000000001n, true],
+ [0x80000001n, 0x800000000000000000000001n, true],
+ [0xfffffffen, 0x800000000000000000000001n, true],
+ [0xffffffffn, 0x800000000000000000000001n, true],
+ [0x100000000n, 0x800000000000000000000001n, true],
+ [0x100000001n, 0x800000000000000000000001n, true],
+ [0x7ffffffffffffffen, 0x800000000000000000000001n, true],
+ [0x7fffffffffffffffn, 0x800000000000000000000001n, true],
+ [0x8000000000000000n, 0x800000000000000000000001n, true],
+ [0x8000000000000001n, 0x800000000000000000000001n, true],
+ [0xfffffffffffffffen, 0x800000000000000000000001n, true],
+ [0xffffffffffffffffn, 0x800000000000000000000001n, true],
+ [0x10000000000000000n, 0x800000000000000000000001n, true],
+ [0x10000000000000001n, 0x800000000000000000000001n, true],
+ [0x7ffffffffffffffffffffffen, 0x800000000000000000000001n, true],
+ [0x7fffffffffffffffffffffffn, 0x800000000000000000000001n, true],
+ [0x800000000000000000000000n, 0x800000000000000000000001n, true],
+ [0x800000000000000000000001n, 0x800000000000000000000001n, false],
+ [0xfffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [0x1000000000000000000000000n, 0x800000000000000000000001n, false],
+ [0x1000000000000000000000001n, 0x800000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x800000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x800000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x800000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, -0x800000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, true],
+ [-0x80000000000000000000000000000001n, -0x800000000000000000000001n, true],
+ [-0x80000000000000000000000000000000n, -0x800000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, true],
+ [-0x1000000000000000000000001n, -0x800000000000000000000001n, true],
+ [-0x1000000000000000000000000n, -0x800000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, -0x800000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, -0x800000000000000000000001n, true],
+ [-0x800000000000000000000001n, -0x800000000000000000000001n, false],
+ [-0x800000000000000000000000n, -0x800000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [-0x10000000000000001n, -0x800000000000000000000001n, false],
+ [-0x10000000000000000n, -0x800000000000000000000001n, false],
+ [-0xffffffffffffffffn, -0x800000000000000000000001n, false],
+ [-0xfffffffffffffffen, -0x800000000000000000000001n, false],
+ [-0x8000000000000001n, -0x800000000000000000000001n, false],
+ [-0x8000000000000000n, -0x800000000000000000000001n, false],
+ [-0x7fffffffffffffffn, -0x800000000000000000000001n, false],
+ [-0x7ffffffffffffffen, -0x800000000000000000000001n, false],
+ [-0x100000001n, -0x800000000000000000000001n, false],
+ [-0x100000000n, -0x800000000000000000000001n, false],
+ [-0xffffffffn, -0x800000000000000000000001n, false],
+ [-0xfffffffen, -0x800000000000000000000001n, false],
+ [-0x80000001n, -0x800000000000000000000001n, false],
+ [-0x80000000n, -0x800000000000000000000001n, false],
+ [-0x7fffffffn, -0x800000000000000000000001n, false],
+ [-0x7ffffffen, -0x800000000000000000000001n, false],
+ [-2n, -0x800000000000000000000001n, false],
+ [-1n, -0x800000000000000000000001n, false],
+ [0n, -0x800000000000000000000001n, false],
+ [1n, -0x800000000000000000000001n, false],
+ [2n, -0x800000000000000000000001n, false],
+ [0x7ffffffen, -0x800000000000000000000001n, false],
+ [0x7fffffffn, -0x800000000000000000000001n, false],
+ [0x80000000n, -0x800000000000000000000001n, false],
+ [0x80000001n, -0x800000000000000000000001n, false],
+ [0xfffffffen, -0x800000000000000000000001n, false],
+ [0xffffffffn, -0x800000000000000000000001n, false],
+ [0x100000000n, -0x800000000000000000000001n, false],
+ [0x100000001n, -0x800000000000000000000001n, false],
+ [0x7ffffffffffffffen, -0x800000000000000000000001n, false],
+ [0x7fffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x8000000000000000n, -0x800000000000000000000001n, false],
+ [0x8000000000000001n, -0x800000000000000000000001n, false],
+ [0xfffffffffffffffen, -0x800000000000000000000001n, false],
+ [0xffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x10000000000000000n, -0x800000000000000000000001n, false],
+ [0x10000000000000001n, -0x800000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x800000000000000000000000n, -0x800000000000000000000001n, false],
+ [0x800000000000000000000001n, -0x800000000000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x1000000000000000000000000n, -0x800000000000000000000001n, false],
+ [0x1000000000000000000000001n, -0x800000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x800000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x800000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x800000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x800000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x800000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, -0x800000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, true],
+ [-0x80000000000000000000000000000001n, -0x800000000000000000000000n, true],
+ [-0x80000000000000000000000000000000n, -0x800000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, true],
+ [-0x1000000000000000000000001n, -0x800000000000000000000000n, true],
+ [-0x1000000000000000000000000n, -0x800000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, -0x800000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, -0x800000000000000000000000n, true],
+ [-0x800000000000000000000001n, -0x800000000000000000000000n, true],
+ [-0x800000000000000000000000n, -0x800000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [-0x10000000000000001n, -0x800000000000000000000000n, false],
+ [-0x10000000000000000n, -0x800000000000000000000000n, false],
+ [-0xffffffffffffffffn, -0x800000000000000000000000n, false],
+ [-0xfffffffffffffffen, -0x800000000000000000000000n, false],
+ [-0x8000000000000001n, -0x800000000000000000000000n, false],
+ [-0x8000000000000000n, -0x800000000000000000000000n, false],
+ [-0x7fffffffffffffffn, -0x800000000000000000000000n, false],
+ [-0x7ffffffffffffffen, -0x800000000000000000000000n, false],
+ [-0x100000001n, -0x800000000000000000000000n, false],
+ [-0x100000000n, -0x800000000000000000000000n, false],
+ [-0xffffffffn, -0x800000000000000000000000n, false],
+ [-0xfffffffen, -0x800000000000000000000000n, false],
+ [-0x80000001n, -0x800000000000000000000000n, false],
+ [-0x80000000n, -0x800000000000000000000000n, false],
+ [-0x7fffffffn, -0x800000000000000000000000n, false],
+ [-0x7ffffffen, -0x800000000000000000000000n, false],
+ [-2n, -0x800000000000000000000000n, false],
+ [-1n, -0x800000000000000000000000n, false],
+ [0n, -0x800000000000000000000000n, false],
+ [1n, -0x800000000000000000000000n, false],
+ [2n, -0x800000000000000000000000n, false],
+ [0x7ffffffen, -0x800000000000000000000000n, false],
+ [0x7fffffffn, -0x800000000000000000000000n, false],
+ [0x80000000n, -0x800000000000000000000000n, false],
+ [0x80000001n, -0x800000000000000000000000n, false],
+ [0xfffffffen, -0x800000000000000000000000n, false],
+ [0xffffffffn, -0x800000000000000000000000n, false],
+ [0x100000000n, -0x800000000000000000000000n, false],
+ [0x100000001n, -0x800000000000000000000000n, false],
+ [0x7ffffffffffffffen, -0x800000000000000000000000n, false],
+ [0x7fffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x8000000000000000n, -0x800000000000000000000000n, false],
+ [0x8000000000000001n, -0x800000000000000000000000n, false],
+ [0xfffffffffffffffen, -0x800000000000000000000000n, false],
+ [0xffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x10000000000000000n, -0x800000000000000000000000n, false],
+ [0x10000000000000001n, -0x800000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x800000000000000000000000n, -0x800000000000000000000000n, false],
+ [0x800000000000000000000001n, -0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x1000000000000000000000000n, -0x800000000000000000000000n, false],
+ [0x1000000000000000000000001n, -0x800000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x800000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x800000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x800000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x800000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x800000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, -0x7fffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, -0x7fffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, true],
+ [-0x800000000000000000000001n, -0x7fffffffffffffffffffffffn, true],
+ [-0x800000000000000000000000n, -0x7fffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-0x10000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x10000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-0x8000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x8000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-0x100000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x100000000n, -0x7fffffffffffffffffffffffn, false],
+ [-0xffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0xfffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-0x80000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x80000000n, -0x7fffffffffffffffffffffffn, false],
+ [-0x7fffffffn, -0x7fffffffffffffffffffffffn, false],
+ [-0x7ffffffen, -0x7fffffffffffffffffffffffn, false],
+ [-2n, -0x7fffffffffffffffffffffffn, false],
+ [-1n, -0x7fffffffffffffffffffffffn, false],
+ [0n, -0x7fffffffffffffffffffffffn, false],
+ [1n, -0x7fffffffffffffffffffffffn, false],
+ [2n, -0x7fffffffffffffffffffffffn, false],
+ [0x7ffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x80000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x80000001n, -0x7fffffffffffffffffffffffn, false],
+ [0xfffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0xffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x100000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x100000001n, -0x7fffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x8000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x8000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x10000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x10000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x800000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x800000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000001n, -0x7ffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000000n, -0x7ffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, true],
+ [-0x800000000000000000000001n, -0x7ffffffffffffffffffffffen, true],
+ [-0x800000000000000000000000n, -0x7ffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-0x10000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x10000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-0x8000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x8000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-0x100000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x100000000n, -0x7ffffffffffffffffffffffen, false],
+ [-0xffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [-0xfffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-0x80000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x80000000n, -0x7ffffffffffffffffffffffen, false],
+ [-0x7fffffffn, -0x7ffffffffffffffffffffffen, false],
+ [-0x7ffffffen, -0x7ffffffffffffffffffffffen, false],
+ [-2n, -0x7ffffffffffffffffffffffen, false],
+ [-1n, -0x7ffffffffffffffffffffffen, false],
+ [0n, -0x7ffffffffffffffffffffffen, false],
+ [1n, -0x7ffffffffffffffffffffffen, false],
+ [2n, -0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x80000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x80000001n, -0x7ffffffffffffffffffffffen, false],
+ [0xfffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0xffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x100000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x100000001n, -0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x8000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x8000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x10000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x10000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x800000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x800000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [-0x800000000000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x800000000000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [-0x10000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x10000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [-0x8000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x8000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [-0x100000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x100000000n, 0xfffffffffffffffffffffffen, true],
+ [-0xffffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0xfffffffen, 0xfffffffffffffffffffffffen, true],
+ [-0x80000001n, 0xfffffffffffffffffffffffen, true],
+ [-0x80000000n, 0xfffffffffffffffffffffffen, true],
+ [-0x7fffffffn, 0xfffffffffffffffffffffffen, true],
+ [-0x7ffffffen, 0xfffffffffffffffffffffffen, true],
+ [-2n, 0xfffffffffffffffffffffffen, true],
+ [-1n, 0xfffffffffffffffffffffffen, true],
+ [0n, 0xfffffffffffffffffffffffen, true],
+ [1n, 0xfffffffffffffffffffffffen, true],
+ [2n, 0xfffffffffffffffffffffffen, true],
+ [0x7ffffffen, 0xfffffffffffffffffffffffen, true],
+ [0x7fffffffn, 0xfffffffffffffffffffffffen, true],
+ [0x80000000n, 0xfffffffffffffffffffffffen, true],
+ [0x80000001n, 0xfffffffffffffffffffffffen, true],
+ [0xfffffffen, 0xfffffffffffffffffffffffen, true],
+ [0xffffffffn, 0xfffffffffffffffffffffffen, true],
+ [0x100000000n, 0xfffffffffffffffffffffffen, true],
+ [0x100000001n, 0xfffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [0x8000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [0x8000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [0xfffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [0xffffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [0x10000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [0x10000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, true],
+ [0x800000000000000000000000n, 0xfffffffffffffffffffffffen, true],
+ [0x800000000000000000000001n, 0xfffffffffffffffffffffffen, true],
+ [0xfffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [-0x800000000000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x800000000000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [-0x10000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x10000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [-0x8000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x8000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [-0x100000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x100000000n, 0xffffffffffffffffffffffffn, true],
+ [-0xffffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0xfffffffen, 0xffffffffffffffffffffffffn, true],
+ [-0x80000001n, 0xffffffffffffffffffffffffn, true],
+ [-0x80000000n, 0xffffffffffffffffffffffffn, true],
+ [-0x7fffffffn, 0xffffffffffffffffffffffffn, true],
+ [-0x7ffffffen, 0xffffffffffffffffffffffffn, true],
+ [-2n, 0xffffffffffffffffffffffffn, true],
+ [-1n, 0xffffffffffffffffffffffffn, true],
+ [0n, 0xffffffffffffffffffffffffn, true],
+ [1n, 0xffffffffffffffffffffffffn, true],
+ [2n, 0xffffffffffffffffffffffffn, true],
+ [0x7ffffffen, 0xffffffffffffffffffffffffn, true],
+ [0x7fffffffn, 0xffffffffffffffffffffffffn, true],
+ [0x80000000n, 0xffffffffffffffffffffffffn, true],
+ [0x80000001n, 0xffffffffffffffffffffffffn, true],
+ [0xfffffffen, 0xffffffffffffffffffffffffn, true],
+ [0xffffffffn, 0xffffffffffffffffffffffffn, true],
+ [0x100000000n, 0xffffffffffffffffffffffffn, true],
+ [0x100000001n, 0xffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [0x8000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [0x8000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [0xfffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [0xffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [0x10000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [0x10000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, true],
+ [0x800000000000000000000000n, 0xffffffffffffffffffffffffn, true],
+ [0x800000000000000000000001n, 0xffffffffffffffffffffffffn, true],
+ [0xfffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, true],
+ [0xffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x1000000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, 0x1000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, true],
+ [-0x80000000000000000000000000000001n, 0x1000000000000000000000000n, true],
+ [-0x80000000000000000000000000000000n, 0x1000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, true],
+ [-0x1000000000000000000000001n, 0x1000000000000000000000000n, true],
+ [-0x1000000000000000000000000n, 0x1000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x1000000000000000000000000n, true],
+ [-0x800000000000000000000001n, 0x1000000000000000000000000n, true],
+ [-0x800000000000000000000000n, 0x1000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x1000000000000000000000000n, true],
+ [-0x10000000000000001n, 0x1000000000000000000000000n, true],
+ [-0x10000000000000000n, 0x1000000000000000000000000n, true],
+ [-0xffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [-0xfffffffffffffffen, 0x1000000000000000000000000n, true],
+ [-0x8000000000000001n, 0x1000000000000000000000000n, true],
+ [-0x8000000000000000n, 0x1000000000000000000000000n, true],
+ [-0x7fffffffffffffffn, 0x1000000000000000000000000n, true],
+ [-0x7ffffffffffffffen, 0x1000000000000000000000000n, true],
+ [-0x100000001n, 0x1000000000000000000000000n, true],
+ [-0x100000000n, 0x1000000000000000000000000n, true],
+ [-0xffffffffn, 0x1000000000000000000000000n, true],
+ [-0xfffffffen, 0x1000000000000000000000000n, true],
+ [-0x80000001n, 0x1000000000000000000000000n, true],
+ [-0x80000000n, 0x1000000000000000000000000n, true],
+ [-0x7fffffffn, 0x1000000000000000000000000n, true],
+ [-0x7ffffffen, 0x1000000000000000000000000n, true],
+ [-2n, 0x1000000000000000000000000n, true],
+ [-1n, 0x1000000000000000000000000n, true],
+ [0n, 0x1000000000000000000000000n, true],
+ [1n, 0x1000000000000000000000000n, true],
+ [2n, 0x1000000000000000000000000n, true],
+ [0x7ffffffen, 0x1000000000000000000000000n, true],
+ [0x7fffffffn, 0x1000000000000000000000000n, true],
+ [0x80000000n, 0x1000000000000000000000000n, true],
+ [0x80000001n, 0x1000000000000000000000000n, true],
+ [0xfffffffen, 0x1000000000000000000000000n, true],
+ [0xffffffffn, 0x1000000000000000000000000n, true],
+ [0x100000000n, 0x1000000000000000000000000n, true],
+ [0x100000001n, 0x1000000000000000000000000n, true],
+ [0x7ffffffffffffffen, 0x1000000000000000000000000n, true],
+ [0x7fffffffffffffffn, 0x1000000000000000000000000n, true],
+ [0x8000000000000000n, 0x1000000000000000000000000n, true],
+ [0x8000000000000001n, 0x1000000000000000000000000n, true],
+ [0xfffffffffffffffen, 0x1000000000000000000000000n, true],
+ [0xffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [0x10000000000000000n, 0x1000000000000000000000000n, true],
+ [0x10000000000000001n, 0x1000000000000000000000000n, true],
+ [0x7ffffffffffffffffffffffen, 0x1000000000000000000000000n, true],
+ [0x7fffffffffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [0x800000000000000000000000n, 0x1000000000000000000000000n, true],
+ [0x800000000000000000000001n, 0x1000000000000000000000000n, true],
+ [0xfffffffffffffffffffffffen, 0x1000000000000000000000000n, true],
+ [0xffffffffffffffffffffffffn, 0x1000000000000000000000000n, true],
+ [0x1000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [0x1000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x1000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x1000000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, 0x1000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, true],
+ [-0x80000000000000000000000000000001n, 0x1000000000000000000000001n, true],
+ [-0x80000000000000000000000000000000n, 0x1000000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, true],
+ [-0x1000000000000000000000001n, 0x1000000000000000000000001n, true],
+ [-0x1000000000000000000000000n, 0x1000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x1000000000000000000000001n, true],
+ [-0x800000000000000000000001n, 0x1000000000000000000000001n, true],
+ [-0x800000000000000000000000n, 0x1000000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x1000000000000000000000001n, true],
+ [-0x10000000000000001n, 0x1000000000000000000000001n, true],
+ [-0x10000000000000000n, 0x1000000000000000000000001n, true],
+ [-0xffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [-0xfffffffffffffffen, 0x1000000000000000000000001n, true],
+ [-0x8000000000000001n, 0x1000000000000000000000001n, true],
+ [-0x8000000000000000n, 0x1000000000000000000000001n, true],
+ [-0x7fffffffffffffffn, 0x1000000000000000000000001n, true],
+ [-0x7ffffffffffffffen, 0x1000000000000000000000001n, true],
+ [-0x100000001n, 0x1000000000000000000000001n, true],
+ [-0x100000000n, 0x1000000000000000000000001n, true],
+ [-0xffffffffn, 0x1000000000000000000000001n, true],
+ [-0xfffffffen, 0x1000000000000000000000001n, true],
+ [-0x80000001n, 0x1000000000000000000000001n, true],
+ [-0x80000000n, 0x1000000000000000000000001n, true],
+ [-0x7fffffffn, 0x1000000000000000000000001n, true],
+ [-0x7ffffffen, 0x1000000000000000000000001n, true],
+ [-2n, 0x1000000000000000000000001n, true],
+ [-1n, 0x1000000000000000000000001n, true],
+ [0n, 0x1000000000000000000000001n, true],
+ [1n, 0x1000000000000000000000001n, true],
+ [2n, 0x1000000000000000000000001n, true],
+ [0x7ffffffen, 0x1000000000000000000000001n, true],
+ [0x7fffffffn, 0x1000000000000000000000001n, true],
+ [0x80000000n, 0x1000000000000000000000001n, true],
+ [0x80000001n, 0x1000000000000000000000001n, true],
+ [0xfffffffen, 0x1000000000000000000000001n, true],
+ [0xffffffffn, 0x1000000000000000000000001n, true],
+ [0x100000000n, 0x1000000000000000000000001n, true],
+ [0x100000001n, 0x1000000000000000000000001n, true],
+ [0x7ffffffffffffffen, 0x1000000000000000000000001n, true],
+ [0x7fffffffffffffffn, 0x1000000000000000000000001n, true],
+ [0x8000000000000000n, 0x1000000000000000000000001n, true],
+ [0x8000000000000001n, 0x1000000000000000000000001n, true],
+ [0xfffffffffffffffen, 0x1000000000000000000000001n, true],
+ [0xffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [0x10000000000000000n, 0x1000000000000000000000001n, true],
+ [0x10000000000000001n, 0x1000000000000000000000001n, true],
+ [0x7ffffffffffffffffffffffen, 0x1000000000000000000000001n, true],
+ [0x7fffffffffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [0x800000000000000000000000n, 0x1000000000000000000000001n, true],
+ [0x800000000000000000000001n, 0x1000000000000000000000001n, true],
+ [0xfffffffffffffffffffffffen, 0x1000000000000000000000001n, true],
+ [0xffffffffffffffffffffffffn, 0x1000000000000000000000001n, true],
+ [0x1000000000000000000000000n, 0x1000000000000000000000001n, true],
+ [0x1000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, 0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x1000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x1000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x1000000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, -0x1000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, true],
+ [-0x80000000000000000000000000000001n, -0x1000000000000000000000001n, true],
+ [-0x80000000000000000000000000000000n, -0x1000000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, true],
+ [-0x1000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x1000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [-0x800000000000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x800000000000000000000000n, -0x1000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [-0x10000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x10000000000000000n, -0x1000000000000000000000001n, false],
+ [-0xffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [-0xfffffffffffffffen, -0x1000000000000000000000001n, false],
+ [-0x8000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x8000000000000000n, -0x1000000000000000000000001n, false],
+ [-0x7fffffffffffffffn, -0x1000000000000000000000001n, false],
+ [-0x7ffffffffffffffen, -0x1000000000000000000000001n, false],
+ [-0x100000001n, -0x1000000000000000000000001n, false],
+ [-0x100000000n, -0x1000000000000000000000001n, false],
+ [-0xffffffffn, -0x1000000000000000000000001n, false],
+ [-0xfffffffen, -0x1000000000000000000000001n, false],
+ [-0x80000001n, -0x1000000000000000000000001n, false],
+ [-0x80000000n, -0x1000000000000000000000001n, false],
+ [-0x7fffffffn, -0x1000000000000000000000001n, false],
+ [-0x7ffffffen, -0x1000000000000000000000001n, false],
+ [-2n, -0x1000000000000000000000001n, false],
+ [-1n, -0x1000000000000000000000001n, false],
+ [0n, -0x1000000000000000000000001n, false],
+ [1n, -0x1000000000000000000000001n, false],
+ [2n, -0x1000000000000000000000001n, false],
+ [0x7ffffffen, -0x1000000000000000000000001n, false],
+ [0x7fffffffn, -0x1000000000000000000000001n, false],
+ [0x80000000n, -0x1000000000000000000000001n, false],
+ [0x80000001n, -0x1000000000000000000000001n, false],
+ [0xfffffffen, -0x1000000000000000000000001n, false],
+ [0xffffffffn, -0x1000000000000000000000001n, false],
+ [0x100000000n, -0x1000000000000000000000001n, false],
+ [0x100000001n, -0x1000000000000000000000001n, false],
+ [0x7ffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0x7fffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x8000000000000000n, -0x1000000000000000000000001n, false],
+ [0x8000000000000001n, -0x1000000000000000000000001n, false],
+ [0xfffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0xffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x10000000000000000n, -0x1000000000000000000000001n, false],
+ [0x10000000000000001n, -0x1000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x800000000000000000000000n, -0x1000000000000000000000001n, false],
+ [0x800000000000000000000001n, -0x1000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x1000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [0x1000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x1000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x1000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x1000000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, -0x1000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, true],
+ [-0x80000000000000000000000000000001n, -0x1000000000000000000000000n, true],
+ [-0x80000000000000000000000000000000n, -0x1000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, true],
+ [-0x1000000000000000000000001n, -0x1000000000000000000000000n, true],
+ [-0x1000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [-0x800000000000000000000001n, -0x1000000000000000000000000n, false],
+ [-0x800000000000000000000000n, -0x1000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [-0x10000000000000001n, -0x1000000000000000000000000n, false],
+ [-0x10000000000000000n, -0x1000000000000000000000000n, false],
+ [-0xffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [-0xfffffffffffffffen, -0x1000000000000000000000000n, false],
+ [-0x8000000000000001n, -0x1000000000000000000000000n, false],
+ [-0x8000000000000000n, -0x1000000000000000000000000n, false],
+ [-0x7fffffffffffffffn, -0x1000000000000000000000000n, false],
+ [-0x7ffffffffffffffen, -0x1000000000000000000000000n, false],
+ [-0x100000001n, -0x1000000000000000000000000n, false],
+ [-0x100000000n, -0x1000000000000000000000000n, false],
+ [-0xffffffffn, -0x1000000000000000000000000n, false],
+ [-0xfffffffen, -0x1000000000000000000000000n, false],
+ [-0x80000001n, -0x1000000000000000000000000n, false],
+ [-0x80000000n, -0x1000000000000000000000000n, false],
+ [-0x7fffffffn, -0x1000000000000000000000000n, false],
+ [-0x7ffffffen, -0x1000000000000000000000000n, false],
+ [-2n, -0x1000000000000000000000000n, false],
+ [-1n, -0x1000000000000000000000000n, false],
+ [0n, -0x1000000000000000000000000n, false],
+ [1n, -0x1000000000000000000000000n, false],
+ [2n, -0x1000000000000000000000000n, false],
+ [0x7ffffffen, -0x1000000000000000000000000n, false],
+ [0x7fffffffn, -0x1000000000000000000000000n, false],
+ [0x80000000n, -0x1000000000000000000000000n, false],
+ [0x80000001n, -0x1000000000000000000000000n, false],
+ [0xfffffffen, -0x1000000000000000000000000n, false],
+ [0xffffffffn, -0x1000000000000000000000000n, false],
+ [0x100000000n, -0x1000000000000000000000000n, false],
+ [0x100000001n, -0x1000000000000000000000000n, false],
+ [0x7ffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0x7fffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x8000000000000000n, -0x1000000000000000000000000n, false],
+ [0x8000000000000001n, -0x1000000000000000000000000n, false],
+ [0xfffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0xffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x10000000000000000n, -0x1000000000000000000000000n, false],
+ [0x10000000000000001n, -0x1000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x800000000000000000000000n, -0x1000000000000000000000000n, false],
+ [0x800000000000000000000001n, -0x1000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x1000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [0x1000000000000000000000001n, -0x1000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x1000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x1000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x1000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x1000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0xffffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, -0xffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, -0xffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, -0xffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, -0xffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, -0xffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [-0x800000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x800000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [-0x10000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x10000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [-0x8000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x8000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [-0x100000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x100000000n, -0xffffffffffffffffffffffffn, false],
+ [-0xffffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0xfffffffen, -0xffffffffffffffffffffffffn, false],
+ [-0x80000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x80000000n, -0xffffffffffffffffffffffffn, false],
+ [-0x7fffffffn, -0xffffffffffffffffffffffffn, false],
+ [-0x7ffffffen, -0xffffffffffffffffffffffffn, false],
+ [-2n, -0xffffffffffffffffffffffffn, false],
+ [-1n, -0xffffffffffffffffffffffffn, false],
+ [0n, -0xffffffffffffffffffffffffn, false],
+ [1n, -0xffffffffffffffffffffffffn, false],
+ [2n, -0xffffffffffffffffffffffffn, false],
+ [0x7ffffffen, -0xffffffffffffffffffffffffn, false],
+ [0x7fffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x80000000n, -0xffffffffffffffffffffffffn, false],
+ [0x80000001n, -0xffffffffffffffffffffffffn, false],
+ [0xfffffffen, -0xffffffffffffffffffffffffn, false],
+ [0xffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x100000000n, -0xffffffffffffffffffffffffn, false],
+ [0x100000001n, -0xffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x8000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x8000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x10000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x10000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x800000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x800000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0xffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0xffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0xfffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, -0xfffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, -0xfffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, -0xfffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000001n, -0xfffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000000n, -0xfffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [-0x800000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x800000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [-0x10000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x10000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [-0x8000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x8000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [-0x100000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x100000000n, -0xfffffffffffffffffffffffen, false],
+ [-0xffffffffn, -0xfffffffffffffffffffffffen, false],
+ [-0xfffffffen, -0xfffffffffffffffffffffffen, false],
+ [-0x80000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x80000000n, -0xfffffffffffffffffffffffen, false],
+ [-0x7fffffffn, -0xfffffffffffffffffffffffen, false],
+ [-0x7ffffffen, -0xfffffffffffffffffffffffen, false],
+ [-2n, -0xfffffffffffffffffffffffen, false],
+ [-1n, -0xfffffffffffffffffffffffen, false],
+ [0n, -0xfffffffffffffffffffffffen, false],
+ [1n, -0xfffffffffffffffffffffffen, false],
+ [2n, -0xfffffffffffffffffffffffen, false],
+ [0x7ffffffen, -0xfffffffffffffffffffffffen, false],
+ [0x7fffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x80000000n, -0xfffffffffffffffffffffffen, false],
+ [0x80000001n, -0xfffffffffffffffffffffffen, false],
+ [0xfffffffen, -0xfffffffffffffffffffffffen, false],
+ [0xffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x100000000n, -0xfffffffffffffffffffffffen, false],
+ [0x100000001n, -0xfffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x8000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x8000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [0xfffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0xffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x10000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x10000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x800000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x800000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0xfffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0xfffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x800000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x800000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x10000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x10000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x8000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x8000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x100000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x100000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x80000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x80000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-2n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [-1n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [1n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [2n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x80000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x80000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0xfffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0xffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x100000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x100000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x8000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x8000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0xfffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0xffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x10000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x10000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x800000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x800000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0xfffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0xffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x1000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x1000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x800000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x800000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x10000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x10000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x8000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x8000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x100000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x100000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x80000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x80000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-2n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [-1n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [1n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [2n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x80000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x80000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0xfffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0xffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x100000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x100000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x8000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x8000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0xfffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0xffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x10000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x10000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x800000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x800000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0xfffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0xffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x1000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x1000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x80000000000000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, 0x80000000000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [-0x80000000000000000000000000000001n, 0x80000000000000000000000000000000n, true],
+ [-0x80000000000000000000000000000000n, 0x80000000000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [-0x1000000000000000000000001n, 0x80000000000000000000000000000000n, true],
+ [-0x1000000000000000000000000n, 0x80000000000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [-0x800000000000000000000001n, 0x80000000000000000000000000000000n, true],
+ [-0x800000000000000000000000n, 0x80000000000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [-0x10000000000000001n, 0x80000000000000000000000000000000n, true],
+ [-0x10000000000000000n, 0x80000000000000000000000000000000n, true],
+ [-0xffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [-0xfffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [-0x8000000000000001n, 0x80000000000000000000000000000000n, true],
+ [-0x8000000000000000n, 0x80000000000000000000000000000000n, true],
+ [-0x7fffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [-0x7ffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [-0x100000001n, 0x80000000000000000000000000000000n, true],
+ [-0x100000000n, 0x80000000000000000000000000000000n, true],
+ [-0xffffffffn, 0x80000000000000000000000000000000n, true],
+ [-0xfffffffen, 0x80000000000000000000000000000000n, true],
+ [-0x80000001n, 0x80000000000000000000000000000000n, true],
+ [-0x80000000n, 0x80000000000000000000000000000000n, true],
+ [-0x7fffffffn, 0x80000000000000000000000000000000n, true],
+ [-0x7ffffffen, 0x80000000000000000000000000000000n, true],
+ [-2n, 0x80000000000000000000000000000000n, true],
+ [-1n, 0x80000000000000000000000000000000n, true],
+ [0n, 0x80000000000000000000000000000000n, true],
+ [1n, 0x80000000000000000000000000000000n, true],
+ [2n, 0x80000000000000000000000000000000n, true],
+ [0x7ffffffen, 0x80000000000000000000000000000000n, true],
+ [0x7fffffffn, 0x80000000000000000000000000000000n, true],
+ [0x80000000n, 0x80000000000000000000000000000000n, true],
+ [0x80000001n, 0x80000000000000000000000000000000n, true],
+ [0xfffffffen, 0x80000000000000000000000000000000n, true],
+ [0xffffffffn, 0x80000000000000000000000000000000n, true],
+ [0x100000000n, 0x80000000000000000000000000000000n, true],
+ [0x100000001n, 0x80000000000000000000000000000000n, true],
+ [0x7ffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [0x7fffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [0x8000000000000000n, 0x80000000000000000000000000000000n, true],
+ [0x8000000000000001n, 0x80000000000000000000000000000000n, true],
+ [0xfffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [0xffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [0x10000000000000000n, 0x80000000000000000000000000000000n, true],
+ [0x10000000000000001n, 0x80000000000000000000000000000000n, true],
+ [0x7ffffffffffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [0x7fffffffffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [0x800000000000000000000000n, 0x80000000000000000000000000000000n, true],
+ [0x800000000000000000000001n, 0x80000000000000000000000000000000n, true],
+ [0xfffffffffffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [0xffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [0x1000000000000000000000000n, 0x80000000000000000000000000000000n, true],
+ [0x1000000000000000000000001n, 0x80000000000000000000000000000000n, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000000n, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, true],
+ [0x80000000000000000000000000000000n, 0x80000000000000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, 0x80000000000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, 0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x80000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x80000000000000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, 0x80000000000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [-0x80000000000000000000000000000001n, 0x80000000000000000000000000000001n, true],
+ [-0x80000000000000000000000000000000n, 0x80000000000000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [-0x1000000000000000000000001n, 0x80000000000000000000000000000001n, true],
+ [-0x1000000000000000000000000n, 0x80000000000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [-0x800000000000000000000001n, 0x80000000000000000000000000000001n, true],
+ [-0x800000000000000000000000n, 0x80000000000000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [-0x10000000000000001n, 0x80000000000000000000000000000001n, true],
+ [-0x10000000000000000n, 0x80000000000000000000000000000001n, true],
+ [-0xffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [-0xfffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [-0x8000000000000001n, 0x80000000000000000000000000000001n, true],
+ [-0x8000000000000000n, 0x80000000000000000000000000000001n, true],
+ [-0x7fffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [-0x7ffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [-0x100000001n, 0x80000000000000000000000000000001n, true],
+ [-0x100000000n, 0x80000000000000000000000000000001n, true],
+ [-0xffffffffn, 0x80000000000000000000000000000001n, true],
+ [-0xfffffffen, 0x80000000000000000000000000000001n, true],
+ [-0x80000001n, 0x80000000000000000000000000000001n, true],
+ [-0x80000000n, 0x80000000000000000000000000000001n, true],
+ [-0x7fffffffn, 0x80000000000000000000000000000001n, true],
+ [-0x7ffffffen, 0x80000000000000000000000000000001n, true],
+ [-2n, 0x80000000000000000000000000000001n, true],
+ [-1n, 0x80000000000000000000000000000001n, true],
+ [0n, 0x80000000000000000000000000000001n, true],
+ [1n, 0x80000000000000000000000000000001n, true],
+ [2n, 0x80000000000000000000000000000001n, true],
+ [0x7ffffffen, 0x80000000000000000000000000000001n, true],
+ [0x7fffffffn, 0x80000000000000000000000000000001n, true],
+ [0x80000000n, 0x80000000000000000000000000000001n, true],
+ [0x80000001n, 0x80000000000000000000000000000001n, true],
+ [0xfffffffen, 0x80000000000000000000000000000001n, true],
+ [0xffffffffn, 0x80000000000000000000000000000001n, true],
+ [0x100000000n, 0x80000000000000000000000000000001n, true],
+ [0x100000001n, 0x80000000000000000000000000000001n, true],
+ [0x7ffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [0x7fffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [0x8000000000000000n, 0x80000000000000000000000000000001n, true],
+ [0x8000000000000001n, 0x80000000000000000000000000000001n, true],
+ [0xfffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [0xffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [0x10000000000000000n, 0x80000000000000000000000000000001n, true],
+ [0x10000000000000001n, 0x80000000000000000000000000000001n, true],
+ [0x7ffffffffffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [0x7fffffffffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [0x800000000000000000000000n, 0x80000000000000000000000000000001n, true],
+ [0x800000000000000000000001n, 0x80000000000000000000000000000001n, true],
+ [0xfffffffffffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [0xffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [0x1000000000000000000000000n, 0x80000000000000000000000000000001n, true],
+ [0x1000000000000000000000001n, 0x80000000000000000000000000000001n, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000001n, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, true],
+ [0x80000000000000000000000000000000n, 0x80000000000000000000000000000001n, true],
+ [0x80000000000000000000000000000001n, 0x80000000000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, 0x80000000000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, 0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, 0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, 0x80000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000000000000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, -0x80000000000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000001n, true],
+ [-0x80000000000000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x80000000000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [-0x1000000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x1000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [-0x800000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x800000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [-0x10000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x10000000000000000n, -0x80000000000000000000000000000001n, false],
+ [-0xffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0xfffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [-0x8000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x8000000000000000n, -0x80000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [-0x100000001n, -0x80000000000000000000000000000001n, false],
+ [-0x100000000n, -0x80000000000000000000000000000001n, false],
+ [-0xffffffffn, -0x80000000000000000000000000000001n, false],
+ [-0xfffffffen, -0x80000000000000000000000000000001n, false],
+ [-0x80000001n, -0x80000000000000000000000000000001n, false],
+ [-0x80000000n, -0x80000000000000000000000000000001n, false],
+ [-0x7fffffffn, -0x80000000000000000000000000000001n, false],
+ [-0x7ffffffen, -0x80000000000000000000000000000001n, false],
+ [-2n, -0x80000000000000000000000000000001n, false],
+ [-1n, -0x80000000000000000000000000000001n, false],
+ [0n, -0x80000000000000000000000000000001n, false],
+ [1n, -0x80000000000000000000000000000001n, false],
+ [2n, -0x80000000000000000000000000000001n, false],
+ [0x7ffffffen, -0x80000000000000000000000000000001n, false],
+ [0x7fffffffn, -0x80000000000000000000000000000001n, false],
+ [0x80000000n, -0x80000000000000000000000000000001n, false],
+ [0x80000001n, -0x80000000000000000000000000000001n, false],
+ [0xfffffffen, -0x80000000000000000000000000000001n, false],
+ [0xffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x100000000n, -0x80000000000000000000000000000001n, false],
+ [0x100000001n, -0x80000000000000000000000000000001n, false],
+ [0x7ffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0x7fffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x8000000000000000n, -0x80000000000000000000000000000001n, false],
+ [0x8000000000000001n, -0x80000000000000000000000000000001n, false],
+ [0xfffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0xffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x10000000000000000n, -0x80000000000000000000000000000001n, false],
+ [0x10000000000000001n, -0x80000000000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x800000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [0x800000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x1000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [0x1000000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x80000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x80000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x80000000000000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, -0x80000000000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000000n, true],
+ [-0x80000000000000000000000000000001n, -0x80000000000000000000000000000000n, true],
+ [-0x80000000000000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [-0x1000000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [-0x1000000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [-0x800000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [-0x800000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [-0x10000000000000001n, -0x80000000000000000000000000000000n, false],
+ [-0x10000000000000000n, -0x80000000000000000000000000000000n, false],
+ [-0xffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0xfffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [-0x8000000000000001n, -0x80000000000000000000000000000000n, false],
+ [-0x8000000000000000n, -0x80000000000000000000000000000000n, false],
+ [-0x7fffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [-0x100000001n, -0x80000000000000000000000000000000n, false],
+ [-0x100000000n, -0x80000000000000000000000000000000n, false],
+ [-0xffffffffn, -0x80000000000000000000000000000000n, false],
+ [-0xfffffffen, -0x80000000000000000000000000000000n, false],
+ [-0x80000001n, -0x80000000000000000000000000000000n, false],
+ [-0x80000000n, -0x80000000000000000000000000000000n, false],
+ [-0x7fffffffn, -0x80000000000000000000000000000000n, false],
+ [-0x7ffffffen, -0x80000000000000000000000000000000n, false],
+ [-2n, -0x80000000000000000000000000000000n, false],
+ [-1n, -0x80000000000000000000000000000000n, false],
+ [0n, -0x80000000000000000000000000000000n, false],
+ [1n, -0x80000000000000000000000000000000n, false],
+ [2n, -0x80000000000000000000000000000000n, false],
+ [0x7ffffffen, -0x80000000000000000000000000000000n, false],
+ [0x7fffffffn, -0x80000000000000000000000000000000n, false],
+ [0x80000000n, -0x80000000000000000000000000000000n, false],
+ [0x80000001n, -0x80000000000000000000000000000000n, false],
+ [0xfffffffen, -0x80000000000000000000000000000000n, false],
+ [0xffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x100000000n, -0x80000000000000000000000000000000n, false],
+ [0x100000001n, -0x80000000000000000000000000000000n, false],
+ [0x7ffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0x7fffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x8000000000000000n, -0x80000000000000000000000000000000n, false],
+ [0x8000000000000001n, -0x80000000000000000000000000000000n, false],
+ [0xfffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0xffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x10000000000000000n, -0x80000000000000000000000000000000n, false],
+ [0x10000000000000001n, -0x80000000000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x800000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [0x800000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x1000000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [0x1000000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x80000000000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x80000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x80000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x800000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x800000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x10000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x10000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x8000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x8000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x80000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x80000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-2n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-1n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [1n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [2n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x80000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x80000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xfffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x8000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x8000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x10000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x10000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x800000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x800000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0x7fffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x800000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x800000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x10000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x10000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x8000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x8000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x80000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x80000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-2n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-1n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [1n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [2n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xfffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x8000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x8000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x10000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x10000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x800000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x800000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0x7ffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x80000000000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x1000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x800000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x800000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x10000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x10000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x8000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x8000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x100000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x100000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x80000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x80000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7fffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [-0x7ffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [-2n, 0xfffffffffffffffffffffffffffffffen, true],
+ [-1n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0n, 0xfffffffffffffffffffffffffffffffen, true],
+ [1n, 0xfffffffffffffffffffffffffffffffen, true],
+ [2n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x80000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x80000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xfffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x100000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x100000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x8000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x8000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xfffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x10000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x10000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x800000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x800000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xfffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x1000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x1000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x80000000000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0x80000000000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, true],
+ [0xfffffffffffffffffffffffffffffffen, 0xfffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, 0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, 0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, 0xfffffffffffffffffffffffffffffffen, false],
+ [-0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x80000000000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x1000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x800000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x800000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x10000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x10000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x8000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x8000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x100000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x100000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0xfffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x80000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x80000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7fffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [-0x7ffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [-2n, 0xffffffffffffffffffffffffffffffffn, true],
+ [-1n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0n, 0xffffffffffffffffffffffffffffffffn, true],
+ [1n, 0xffffffffffffffffffffffffffffffffn, true],
+ [2n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x80000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x80000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xfffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x100000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x100000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x8000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x8000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xfffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x10000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x10000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x800000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x800000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xfffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x1000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x1000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x80000000000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0x80000000000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xfffffffffffffffffffffffffffffffen, 0xffffffffffffffffffffffffffffffffn, true],
+ [0xffffffffffffffffffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, 0xffffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, 0xffffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, 0x100000000000000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [-0x80000000000000000000000000000001n, 0x100000000000000000000000000000000n, true],
+ [-0x80000000000000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [-0x1000000000000000000000001n, 0x100000000000000000000000000000000n, true],
+ [-0x1000000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [-0xffffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [-0xfffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [-0x800000000000000000000001n, 0x100000000000000000000000000000000n, true],
+ [-0x800000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [-0x7fffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [-0x7ffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [-0x10000000000000001n, 0x100000000000000000000000000000000n, true],
+ [-0x10000000000000000n, 0x100000000000000000000000000000000n, true],
+ [-0xffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [-0xfffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [-0x8000000000000001n, 0x100000000000000000000000000000000n, true],
+ [-0x8000000000000000n, 0x100000000000000000000000000000000n, true],
+ [-0x7fffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [-0x7ffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [-0x100000001n, 0x100000000000000000000000000000000n, true],
+ [-0x100000000n, 0x100000000000000000000000000000000n, true],
+ [-0xffffffffn, 0x100000000000000000000000000000000n, true],
+ [-0xfffffffen, 0x100000000000000000000000000000000n, true],
+ [-0x80000001n, 0x100000000000000000000000000000000n, true],
+ [-0x80000000n, 0x100000000000000000000000000000000n, true],
+ [-0x7fffffffn, 0x100000000000000000000000000000000n, true],
+ [-0x7ffffffen, 0x100000000000000000000000000000000n, true],
+ [-2n, 0x100000000000000000000000000000000n, true],
+ [-1n, 0x100000000000000000000000000000000n, true],
+ [0n, 0x100000000000000000000000000000000n, true],
+ [1n, 0x100000000000000000000000000000000n, true],
+ [2n, 0x100000000000000000000000000000000n, true],
+ [0x7ffffffen, 0x100000000000000000000000000000000n, true],
+ [0x7fffffffn, 0x100000000000000000000000000000000n, true],
+ [0x80000000n, 0x100000000000000000000000000000000n, true],
+ [0x80000001n, 0x100000000000000000000000000000000n, true],
+ [0xfffffffen, 0x100000000000000000000000000000000n, true],
+ [0xffffffffn, 0x100000000000000000000000000000000n, true],
+ [0x100000000n, 0x100000000000000000000000000000000n, true],
+ [0x100000001n, 0x100000000000000000000000000000000n, true],
+ [0x7ffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [0x7fffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [0x8000000000000000n, 0x100000000000000000000000000000000n, true],
+ [0x8000000000000001n, 0x100000000000000000000000000000000n, true],
+ [0xfffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [0xffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [0x10000000000000000n, 0x100000000000000000000000000000000n, true],
+ [0x10000000000000001n, 0x100000000000000000000000000000000n, true],
+ [0x7ffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [0x7fffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [0x800000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [0x800000000000000000000001n, 0x100000000000000000000000000000000n, true],
+ [0xfffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [0xffffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [0x1000000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [0x1000000000000000000000001n, 0x100000000000000000000000000000000n, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [0x80000000000000000000000000000000n, 0x100000000000000000000000000000000n, true],
+ [0x80000000000000000000000000000001n, 0x100000000000000000000000000000000n, true],
+ [0xfffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000000n, true],
+ [0xffffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000000n, true],
+ [0x100000000000000000000000000000000n, 0x100000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, 0x100000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [-0x100000000000000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [-0x80000000000000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [-0x80000000000000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [-0x1000000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [-0x1000000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [-0xffffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [-0xfffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [-0x800000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [-0x800000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [-0x7fffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [-0x7ffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [-0x10000000000000001n, 0x100000000000000000000000000000001n, true],
+ [-0x10000000000000000n, 0x100000000000000000000000000000001n, true],
+ [-0xffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [-0xfffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [-0x8000000000000001n, 0x100000000000000000000000000000001n, true],
+ [-0x8000000000000000n, 0x100000000000000000000000000000001n, true],
+ [-0x7fffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [-0x7ffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [-0x100000001n, 0x100000000000000000000000000000001n, true],
+ [-0x100000000n, 0x100000000000000000000000000000001n, true],
+ [-0xffffffffn, 0x100000000000000000000000000000001n, true],
+ [-0xfffffffen, 0x100000000000000000000000000000001n, true],
+ [-0x80000001n, 0x100000000000000000000000000000001n, true],
+ [-0x80000000n, 0x100000000000000000000000000000001n, true],
+ [-0x7fffffffn, 0x100000000000000000000000000000001n, true],
+ [-0x7ffffffen, 0x100000000000000000000000000000001n, true],
+ [-2n, 0x100000000000000000000000000000001n, true],
+ [-1n, 0x100000000000000000000000000000001n, true],
+ [0n, 0x100000000000000000000000000000001n, true],
+ [1n, 0x100000000000000000000000000000001n, true],
+ [2n, 0x100000000000000000000000000000001n, true],
+ [0x7ffffffen, 0x100000000000000000000000000000001n, true],
+ [0x7fffffffn, 0x100000000000000000000000000000001n, true],
+ [0x80000000n, 0x100000000000000000000000000000001n, true],
+ [0x80000001n, 0x100000000000000000000000000000001n, true],
+ [0xfffffffen, 0x100000000000000000000000000000001n, true],
+ [0xffffffffn, 0x100000000000000000000000000000001n, true],
+ [0x100000000n, 0x100000000000000000000000000000001n, true],
+ [0x100000001n, 0x100000000000000000000000000000001n, true],
+ [0x7ffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [0x7fffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [0x8000000000000000n, 0x100000000000000000000000000000001n, true],
+ [0x8000000000000001n, 0x100000000000000000000000000000001n, true],
+ [0xfffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [0xffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [0x10000000000000000n, 0x100000000000000000000000000000001n, true],
+ [0x10000000000000001n, 0x100000000000000000000000000000001n, true],
+ [0x7ffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [0x7fffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [0x800000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [0x800000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [0xfffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [0xffffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [0x1000000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [0x1000000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [0x7ffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [0x7fffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [0x80000000000000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [0x80000000000000000000000000000001n, 0x100000000000000000000000000000001n, true],
+ [0xfffffffffffffffffffffffffffffffen, 0x100000000000000000000000000000001n, true],
+ [0xffffffffffffffffffffffffffffffffn, 0x100000000000000000000000000000001n, true],
+ [0x100000000000000000000000000000000n, 0x100000000000000000000000000000001n, true],
+ [0x100000000000000000000000000000001n, 0x100000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x80000000000000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [-0x80000000000000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x1000000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [-0x1000000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [-0xffffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0xfffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x800000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [-0x800000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x10000000000000001n, -0x100000000000000000000000000000001n, false],
+ [-0x10000000000000000n, -0x100000000000000000000000000000001n, false],
+ [-0xffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0xfffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x8000000000000001n, -0x100000000000000000000000000000001n, false],
+ [-0x8000000000000000n, -0x100000000000000000000000000000001n, false],
+ [-0x7fffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0x7ffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x100000001n, -0x100000000000000000000000000000001n, false],
+ [-0x100000000n, -0x100000000000000000000000000000001n, false],
+ [-0xffffffffn, -0x100000000000000000000000000000001n, false],
+ [-0xfffffffen, -0x100000000000000000000000000000001n, false],
+ [-0x80000001n, -0x100000000000000000000000000000001n, false],
+ [-0x80000000n, -0x100000000000000000000000000000001n, false],
+ [-0x7fffffffn, -0x100000000000000000000000000000001n, false],
+ [-0x7ffffffen, -0x100000000000000000000000000000001n, false],
+ [-2n, -0x100000000000000000000000000000001n, false],
+ [-1n, -0x100000000000000000000000000000001n, false],
+ [0n, -0x100000000000000000000000000000001n, false],
+ [1n, -0x100000000000000000000000000000001n, false],
+ [2n, -0x100000000000000000000000000000001n, false],
+ [0x7ffffffen, -0x100000000000000000000000000000001n, false],
+ [0x7fffffffn, -0x100000000000000000000000000000001n, false],
+ [0x80000000n, -0x100000000000000000000000000000001n, false],
+ [0x80000001n, -0x100000000000000000000000000000001n, false],
+ [0xfffffffen, -0x100000000000000000000000000000001n, false],
+ [0xffffffffn, -0x100000000000000000000000000000001n, false],
+ [0x100000000n, -0x100000000000000000000000000000001n, false],
+ [0x100000001n, -0x100000000000000000000000000000001n, false],
+ [0x7ffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [0x7fffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [0x8000000000000000n, -0x100000000000000000000000000000001n, false],
+ [0x8000000000000001n, -0x100000000000000000000000000000001n, false],
+ [0xfffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [0xffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [0x10000000000000000n, -0x100000000000000000000000000000001n, false],
+ [0x10000000000000001n, -0x100000000000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [0x800000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [0x800000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [0x1000000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [0x1000000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [0x80000000000000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [0x80000000000000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000001n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000000n, -0x100000000000000000000000000000001n, false],
+ [0x100000000000000000000000000000001n, -0x100000000000000000000000000000001n, false],
+ [-0x100000000000000000000000000000001n, -0x100000000000000000000000000000000n, true],
+ [-0x100000000000000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [-0x80000000000000000000000000000001n, -0x100000000000000000000000000000000n, false],
+ [-0x80000000000000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [-0x1000000000000000000000001n, -0x100000000000000000000000000000000n, false],
+ [-0x1000000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [-0xffffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0xfffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [-0x800000000000000000000001n, -0x100000000000000000000000000000000n, false],
+ [-0x800000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [-0x7fffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [-0x10000000000000001n, -0x100000000000000000000000000000000n, false],
+ [-0x10000000000000000n, -0x100000000000000000000000000000000n, false],
+ [-0xffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0xfffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [-0x8000000000000001n, -0x100000000000000000000000000000000n, false],
+ [-0x8000000000000000n, -0x100000000000000000000000000000000n, false],
+ [-0x7fffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0x7ffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [-0x100000001n, -0x100000000000000000000000000000000n, false],
+ [-0x100000000n, -0x100000000000000000000000000000000n, false],
+ [-0xffffffffn, -0x100000000000000000000000000000000n, false],
+ [-0xfffffffen, -0x100000000000000000000000000000000n, false],
+ [-0x80000001n, -0x100000000000000000000000000000000n, false],
+ [-0x80000000n, -0x100000000000000000000000000000000n, false],
+ [-0x7fffffffn, -0x100000000000000000000000000000000n, false],
+ [-0x7ffffffen, -0x100000000000000000000000000000000n, false],
+ [-2n, -0x100000000000000000000000000000000n, false],
+ [-1n, -0x100000000000000000000000000000000n, false],
+ [0n, -0x100000000000000000000000000000000n, false],
+ [1n, -0x100000000000000000000000000000000n, false],
+ [2n, -0x100000000000000000000000000000000n, false],
+ [0x7ffffffen, -0x100000000000000000000000000000000n, false],
+ [0x7fffffffn, -0x100000000000000000000000000000000n, false],
+ [0x80000000n, -0x100000000000000000000000000000000n, false],
+ [0x80000001n, -0x100000000000000000000000000000000n, false],
+ [0xfffffffen, -0x100000000000000000000000000000000n, false],
+ [0xffffffffn, -0x100000000000000000000000000000000n, false],
+ [0x100000000n, -0x100000000000000000000000000000000n, false],
+ [0x100000001n, -0x100000000000000000000000000000000n, false],
+ [0x7ffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [0x7fffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [0x8000000000000000n, -0x100000000000000000000000000000000n, false],
+ [0x8000000000000001n, -0x100000000000000000000000000000000n, false],
+ [0xfffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [0xffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [0x10000000000000000n, -0x100000000000000000000000000000000n, false],
+ [0x10000000000000001n, -0x100000000000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [0x800000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [0x800000000000000000000001n, -0x100000000000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [0x1000000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [0x1000000000000000000000001n, -0x100000000000000000000000000000000n, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [0x80000000000000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [0x80000000000000000000000000000001n, -0x100000000000000000000000000000000n, false],
+ [0xfffffffffffffffffffffffffffffffen, -0x100000000000000000000000000000000n, false],
+ [0xffffffffffffffffffffffffffffffffn, -0x100000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000000n, -0x100000000000000000000000000000000n, false],
+ [0x100000000000000000000000000000001n, -0x100000000000000000000000000000000n, false],
+ [-0x100000000000000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, true],
+ [-0x100000000000000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x80000000000000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x1000000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x800000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x800000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x10000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x10000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x8000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x8000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x100000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x100000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0xfffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x80000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x80000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7fffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x7ffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [-2n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-1n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0n, -0xffffffffffffffffffffffffffffffffn, false],
+ [1n, -0xffffffffffffffffffffffffffffffffn, false],
+ [2n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x80000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x80000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xfffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x100000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x100000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x8000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x8000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x10000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x10000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x800000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x800000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x1000000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x80000000000000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xffffffffffffffffffffffffffffffffn, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000000n, -0xffffffffffffffffffffffffffffffffn, false],
+ [0x100000000000000000000000000000001n, -0xffffffffffffffffffffffffffffffffn, false],
+ [-0x100000000000000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, true],
+ [-0x100000000000000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, true],
+ [-0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, true],
+ [-0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x80000000000000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x1000000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x800000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x800000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x10000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x10000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x8000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x8000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x100000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x100000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0xffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0xfffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x80000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x80000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7fffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [-0x7ffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [-2n, -0xfffffffffffffffffffffffffffffffen, false],
+ [-1n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0n, -0xfffffffffffffffffffffffffffffffen, false],
+ [1n, -0xfffffffffffffffffffffffffffffffen, false],
+ [2n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x80000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x80000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xfffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x8000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x8000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x10000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x10000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x800000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x800000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x1000000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x1000000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7ffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x7fffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x80000000000000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xfffffffffffffffffffffffffffffffen, -0xfffffffffffffffffffffffffffffffen, false],
+ [0xffffffffffffffffffffffffffffffffn, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000000n, -0xfffffffffffffffffffffffffffffffen, false],
+ [0x100000000000000000000000000000001n, -0xfffffffffffffffffffffffffffffffen, false],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs < rhs, expected);
+ assertEq(lhs >= rhs, !expected);
+
+ assertEq(rhs > lhs, expected);
+ assertEq(rhs <= lhs, !expected);
+ }
+}
+
+for (let i = 0; i < 5; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-dec.js b/js/src/jit-test/tests/bigint/bigint-dec.js
new file mode 100644
index 0000000000..09750c08bd
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-dec.js
@@ -0,0 +1,51 @@
+const tests = [
+ [-0x10000000000000001n, -0x10000000000000002n],
+ [-0x10000000000000000n, -0x10000000000000001n],
+ [-0xffffffffffffffffn, -0x10000000000000000n],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn],
+ [-0x8000000000000001n, -0x8000000000000002n],
+ [-0x8000000000000000n, -0x8000000000000001n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn],
+ [-0x100000001n, -0x100000002n],
+ [-0x100000000n, -0x100000001n],
+ [-0xffffffffn, -0x100000000n],
+ [-0xfffffffen, -0xffffffffn],
+ [-0x80000001n, -0x80000002n],
+ [-0x80000000n, -0x80000001n],
+ [-0x7fffffffn, -0x80000000n],
+ [-0x7ffffffen, -0x7fffffffn],
+ [-2n, -3n],
+ [-1n, -2n],
+ [0n, -1n],
+ [1n, 0n],
+ [2n, 1n],
+ [0x7ffffffen, 0x7ffffffdn],
+ [0x7fffffffn, 0x7ffffffen],
+ [0x80000000n, 0x7fffffffn],
+ [0x80000001n, 0x80000000n],
+ [0xfffffffen, 0xfffffffdn],
+ [0xffffffffn, 0xfffffffen],
+ [0x100000000n, 0xffffffffn],
+ [0x100000001n, 0x100000000n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffdn],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen],
+ [0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x8000000000000001n, 0x8000000000000000n],
+ [0xfffffffffffffffen, 0xfffffffffffffffdn],
+ [0xffffffffffffffffn, 0xfffffffffffffffen],
+ [0x10000000000000000n, 0xffffffffffffffffn],
+ [0x10000000000000001n, 0x10000000000000000n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(--input, expected);
+ }
+}
+
+for (let i = 0; i < 200; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-div-bailout.js b/js/src/jit-test/tests/bigint/bigint-div-bailout.js
new file mode 100644
index 0000000000..557ae61e5f
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-div-bailout.js
@@ -0,0 +1,31 @@
+// |jit-test| --ion-warmup-threshold=20
+
+function testBailout() {
+ function f(v, r) {
+ for (var i = 0; i < 50; ++i) {
+ // Ensure DCE and LICM don't eliminate divisions when the divisor is zero.
+ if (i === 0) {
+ r();
+ }
+ 1n / v;
+ 1n / v;
+ 1n / v;
+ }
+ }
+
+ var result = [];
+ function r() {
+ result.push("ok");
+ }
+
+ do {
+ result.length = 0;
+ try {
+ f(1n, r);
+ f(1n, r);
+ f(0n, r);
+ } catch (e) {}
+ assertEq(result.length, 3);
+ } while (!inIon());
+}
+testBailout();
diff --git a/js/src/jit-test/tests/bigint/bigint-div-by-zero.js b/js/src/jit-test/tests/bigint/bigint-div-by-zero.js
new file mode 100644
index 0000000000..2b84cd45f0
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-div-by-zero.js
@@ -0,0 +1,16 @@
+// Fallible BigInt division should have a resume point and its alias set
+// should record that exceptions can be thrown.
+function resumeAfterException(t) {
+ for (var i = 0; i < 2; i++) {
+ try {
+ var x = 1;
+ 1n / 1n;
+ x = 2;
+ 1n / t;
+ } catch (e) {
+ assertEq(x, 2);
+ }
+ }
+}
+resumeAfterException(1n);
+resumeAfterException(0n);
diff --git a/js/src/jit-test/tests/bigint/bigint-div.js b/js/src/jit-test/tests/bigint/bigint-div.js
new file mode 100644
index 0000000000..4cd1516904
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-div.js
@@ -0,0 +1,1346 @@
+const tests = [
+ [-0x10000000000000001n, -2n, 0x8000000000000000n],
+ [-0x10000000000000000n, -2n, 0x8000000000000000n],
+ [-0xffffffffffffffffn, -2n, 0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, -2n, 0x7fffffffffffffffn],
+ [-0x8000000000000001n, -2n, 0x4000000000000000n],
+ [-0x8000000000000000n, -2n, 0x4000000000000000n],
+ [-0x7fffffffffffffffn, -2n, 0x3fffffffffffffffn],
+ [-0x7ffffffffffffffen, -2n, 0x3fffffffffffffffn],
+ [-0x100000001n, -2n, 0x80000000n],
+ [-0x100000000n, -2n, 0x80000000n],
+ [-0xffffffffn, -2n, 0x7fffffffn],
+ [-0xfffffffen, -2n, 0x7fffffffn],
+ [-0x80000001n, -2n, 0x40000000n],
+ [-0x80000000n, -2n, 0x40000000n],
+ [-0x7fffffffn, -2n, 0x3fffffffn],
+ [-0x7ffffffen, -2n, 0x3fffffffn],
+ [-2n, -2n, 1n],
+ [-1n, -2n, 0n],
+ [0n, -2n, 0n],
+ [1n, -2n, 0n],
+ [2n, -2n, -1n],
+ [0x7ffffffen, -2n, -0x3fffffffn],
+ [0x7fffffffn, -2n, -0x3fffffffn],
+ [0x80000000n, -2n, -0x40000000n],
+ [0x80000001n, -2n, -0x40000000n],
+ [0xfffffffen, -2n, -0x7fffffffn],
+ [0xffffffffn, -2n, -0x7fffffffn],
+ [0x100000000n, -2n, -0x80000000n],
+ [0x100000001n, -2n, -0x80000000n],
+ [0x7ffffffffffffffen, -2n, -0x3fffffffffffffffn],
+ [0x7fffffffffffffffn, -2n, -0x3fffffffffffffffn],
+ [0x8000000000000000n, -2n, -0x4000000000000000n],
+ [0x8000000000000001n, -2n, -0x4000000000000000n],
+ [0xfffffffffffffffen, -2n, -0x7fffffffffffffffn],
+ [0xffffffffffffffffn, -2n, -0x7fffffffffffffffn],
+ [0x10000000000000000n, -2n, -0x8000000000000000n],
+ [0x10000000000000001n, -2n, -0x8000000000000000n],
+ [-0x10000000000000001n, -1n, 0x10000000000000001n],
+ [-0x10000000000000000n, -1n, 0x10000000000000000n],
+ [-0xffffffffffffffffn, -1n, 0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -1n, 0xfffffffffffffffen],
+ [-0x8000000000000001n, -1n, 0x8000000000000001n],
+ [-0x8000000000000000n, -1n, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, -1n, 0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -1n, 0x7ffffffffffffffen],
+ [-0x100000001n, -1n, 0x100000001n],
+ [-0x100000000n, -1n, 0x100000000n],
+ [-0xffffffffn, -1n, 0xffffffffn],
+ [-0xfffffffen, -1n, 0xfffffffen],
+ [-0x80000001n, -1n, 0x80000001n],
+ [-0x80000000n, -1n, 0x80000000n],
+ [-0x7fffffffn, -1n, 0x7fffffffn],
+ [-0x7ffffffen, -1n, 0x7ffffffen],
+ [-2n, -1n, 2n],
+ [-1n, -1n, 1n],
+ [0n, -1n, 0n],
+ [1n, -1n, -1n],
+ [2n, -1n, -2n],
+ [0x7ffffffen, -1n, -0x7ffffffen],
+ [0x7fffffffn, -1n, -0x7fffffffn],
+ [0x80000000n, -1n, -0x80000000n],
+ [0x80000001n, -1n, -0x80000001n],
+ [0xfffffffen, -1n, -0xfffffffen],
+ [0xffffffffn, -1n, -0xffffffffn],
+ [0x100000000n, -1n, -0x100000000n],
+ [0x100000001n, -1n, -0x100000001n],
+ [0x7ffffffffffffffen, -1n, -0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -1n, -0x7fffffffffffffffn],
+ [0x8000000000000000n, -1n, -0x8000000000000000n],
+ [0x8000000000000001n, -1n, -0x8000000000000001n],
+ [0xfffffffffffffffen, -1n, -0xfffffffffffffffen],
+ [0xffffffffffffffffn, -1n, -0xffffffffffffffffn],
+ [0x10000000000000000n, -1n, -0x10000000000000000n],
+ [0x10000000000000001n, -1n, -0x10000000000000001n],
+ [-0x10000000000000001n, 1n, -0x10000000000000001n],
+ [-0x10000000000000000n, 1n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 1n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 1n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 1n, -0x8000000000000001n],
+ [-0x8000000000000000n, 1n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 1n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 1n, -0x7ffffffffffffffen],
+ [-0x100000001n, 1n, -0x100000001n],
+ [-0x100000000n, 1n, -0x100000000n],
+ [-0xffffffffn, 1n, -0xffffffffn],
+ [-0xfffffffen, 1n, -0xfffffffen],
+ [-0x80000001n, 1n, -0x80000001n],
+ [-0x80000000n, 1n, -0x80000000n],
+ [-0x7fffffffn, 1n, -0x7fffffffn],
+ [-0x7ffffffen, 1n, -0x7ffffffen],
+ [-2n, 1n, -2n],
+ [-1n, 1n, -1n],
+ [0n, 1n, 0n],
+ [1n, 1n, 1n],
+ [2n, 1n, 2n],
+ [0x7ffffffen, 1n, 0x7ffffffen],
+ [0x7fffffffn, 1n, 0x7fffffffn],
+ [0x80000000n, 1n, 0x80000000n],
+ [0x80000001n, 1n, 0x80000001n],
+ [0xfffffffen, 1n, 0xfffffffen],
+ [0xffffffffn, 1n, 0xffffffffn],
+ [0x100000000n, 1n, 0x100000000n],
+ [0x100000001n, 1n, 0x100000001n],
+ [0x7ffffffffffffffen, 1n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 1n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 1n, 0x8000000000000000n],
+ [0x8000000000000001n, 1n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 1n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 1n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 1n, 0x10000000000000000n],
+ [0x10000000000000001n, 1n, 0x10000000000000001n],
+ [-0x10000000000000001n, 2n, -0x8000000000000000n],
+ [-0x10000000000000000n, 2n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, 2n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, 2n, -0x7fffffffffffffffn],
+ [-0x8000000000000001n, 2n, -0x4000000000000000n],
+ [-0x8000000000000000n, 2n, -0x4000000000000000n],
+ [-0x7fffffffffffffffn, 2n, -0x3fffffffffffffffn],
+ [-0x7ffffffffffffffen, 2n, -0x3fffffffffffffffn],
+ [-0x100000001n, 2n, -0x80000000n],
+ [-0x100000000n, 2n, -0x80000000n],
+ [-0xffffffffn, 2n, -0x7fffffffn],
+ [-0xfffffffen, 2n, -0x7fffffffn],
+ [-0x80000001n, 2n, -0x40000000n],
+ [-0x80000000n, 2n, -0x40000000n],
+ [-0x7fffffffn, 2n, -0x3fffffffn],
+ [-0x7ffffffen, 2n, -0x3fffffffn],
+ [-2n, 2n, -1n],
+ [-1n, 2n, 0n],
+ [0n, 2n, 0n],
+ [1n, 2n, 0n],
+ [2n, 2n, 1n],
+ [0x7ffffffen, 2n, 0x3fffffffn],
+ [0x7fffffffn, 2n, 0x3fffffffn],
+ [0x80000000n, 2n, 0x40000000n],
+ [0x80000001n, 2n, 0x40000000n],
+ [0xfffffffen, 2n, 0x7fffffffn],
+ [0xffffffffn, 2n, 0x7fffffffn],
+ [0x100000000n, 2n, 0x80000000n],
+ [0x100000001n, 2n, 0x80000000n],
+ [0x7ffffffffffffffen, 2n, 0x3fffffffffffffffn],
+ [0x7fffffffffffffffn, 2n, 0x3fffffffffffffffn],
+ [0x8000000000000000n, 2n, 0x4000000000000000n],
+ [0x8000000000000001n, 2n, 0x4000000000000000n],
+ [0xfffffffffffffffen, 2n, 0x7fffffffffffffffn],
+ [0xffffffffffffffffn, 2n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, 2n, 0x8000000000000000n],
+ [0x10000000000000001n, 2n, 0x8000000000000000n],
+ [-0x10000000000000001n, 0x7ffffffen, -0x200000008n],
+ [-0x10000000000000000n, 0x7ffffffen, -0x200000008n],
+ [-0xffffffffffffffffn, 0x7ffffffen, -0x200000008n],
+ [-0xfffffffffffffffen, 0x7ffffffen, -0x200000008n],
+ [-0x8000000000000001n, 0x7ffffffen, -0x100000004n],
+ [-0x8000000000000000n, 0x7ffffffen, -0x100000004n],
+ [-0x7fffffffffffffffn, 0x7ffffffen, -0x100000004n],
+ [-0x7ffffffffffffffen, 0x7ffffffen, -0x100000004n],
+ [-0x100000001n, 0x7ffffffen, -2n],
+ [-0x100000000n, 0x7ffffffen, -2n],
+ [-0xffffffffn, 0x7ffffffen, -2n],
+ [-0xfffffffen, 0x7ffffffen, -2n],
+ [-0x80000001n, 0x7ffffffen, -1n],
+ [-0x80000000n, 0x7ffffffen, -1n],
+ [-0x7fffffffn, 0x7ffffffen, -1n],
+ [-0x7ffffffen, 0x7ffffffen, -1n],
+ [-2n, 0x7ffffffen, 0n],
+ [-1n, 0x7ffffffen, 0n],
+ [0n, 0x7ffffffen, 0n],
+ [1n, 0x7ffffffen, 0n],
+ [2n, 0x7ffffffen, 0n],
+ [0x7ffffffen, 0x7ffffffen, 1n],
+ [0x7fffffffn, 0x7ffffffen, 1n],
+ [0x80000000n, 0x7ffffffen, 1n],
+ [0x80000001n, 0x7ffffffen, 1n],
+ [0xfffffffen, 0x7ffffffen, 2n],
+ [0xffffffffn, 0x7ffffffen, 2n],
+ [0x100000000n, 0x7ffffffen, 2n],
+ [0x100000001n, 0x7ffffffen, 2n],
+ [0x7ffffffffffffffen, 0x7ffffffen, 0x100000004n],
+ [0x7fffffffffffffffn, 0x7ffffffen, 0x100000004n],
+ [0x8000000000000000n, 0x7ffffffen, 0x100000004n],
+ [0x8000000000000001n, 0x7ffffffen, 0x100000004n],
+ [0xfffffffffffffffen, 0x7ffffffen, 0x200000008n],
+ [0xffffffffffffffffn, 0x7ffffffen, 0x200000008n],
+ [0x10000000000000000n, 0x7ffffffen, 0x200000008n],
+ [0x10000000000000001n, 0x7ffffffen, 0x200000008n],
+ [-0x10000000000000001n, 0x7fffffffn, -0x200000004n],
+ [-0x10000000000000000n, 0x7fffffffn, -0x200000004n],
+ [-0xffffffffffffffffn, 0x7fffffffn, -0x200000004n],
+ [-0xfffffffffffffffen, 0x7fffffffn, -0x200000004n],
+ [-0x8000000000000001n, 0x7fffffffn, -0x100000002n],
+ [-0x8000000000000000n, 0x7fffffffn, -0x100000002n],
+ [-0x7fffffffffffffffn, 0x7fffffffn, -0x100000002n],
+ [-0x7ffffffffffffffen, 0x7fffffffn, -0x100000002n],
+ [-0x100000001n, 0x7fffffffn, -2n],
+ [-0x100000000n, 0x7fffffffn, -2n],
+ [-0xffffffffn, 0x7fffffffn, -2n],
+ [-0xfffffffen, 0x7fffffffn, -2n],
+ [-0x80000001n, 0x7fffffffn, -1n],
+ [-0x80000000n, 0x7fffffffn, -1n],
+ [-0x7fffffffn, 0x7fffffffn, -1n],
+ [-0x7ffffffen, 0x7fffffffn, 0n],
+ [-2n, 0x7fffffffn, 0n],
+ [-1n, 0x7fffffffn, 0n],
+ [0n, 0x7fffffffn, 0n],
+ [1n, 0x7fffffffn, 0n],
+ [2n, 0x7fffffffn, 0n],
+ [0x7ffffffen, 0x7fffffffn, 0n],
+ [0x7fffffffn, 0x7fffffffn, 1n],
+ [0x80000000n, 0x7fffffffn, 1n],
+ [0x80000001n, 0x7fffffffn, 1n],
+ [0xfffffffen, 0x7fffffffn, 2n],
+ [0xffffffffn, 0x7fffffffn, 2n],
+ [0x100000000n, 0x7fffffffn, 2n],
+ [0x100000001n, 0x7fffffffn, 2n],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0x100000002n],
+ [0x7fffffffffffffffn, 0x7fffffffn, 0x100000002n],
+ [0x8000000000000000n, 0x7fffffffn, 0x100000002n],
+ [0x8000000000000001n, 0x7fffffffn, 0x100000002n],
+ [0xfffffffffffffffen, 0x7fffffffn, 0x200000004n],
+ [0xffffffffffffffffn, 0x7fffffffn, 0x200000004n],
+ [0x10000000000000000n, 0x7fffffffn, 0x200000004n],
+ [0x10000000000000001n, 0x7fffffffn, 0x200000004n],
+ [-0x10000000000000001n, 0x80000000n, -0x200000000n],
+ [-0x10000000000000000n, 0x80000000n, -0x200000000n],
+ [-0xffffffffffffffffn, 0x80000000n, -0x1ffffffffn],
+ [-0xfffffffffffffffen, 0x80000000n, -0x1ffffffffn],
+ [-0x8000000000000001n, 0x80000000n, -0x100000000n],
+ [-0x8000000000000000n, 0x80000000n, -0x100000000n],
+ [-0x7fffffffffffffffn, 0x80000000n, -0xffffffffn],
+ [-0x7ffffffffffffffen, 0x80000000n, -0xffffffffn],
+ [-0x100000001n, 0x80000000n, -2n],
+ [-0x100000000n, 0x80000000n, -2n],
+ [-0xffffffffn, 0x80000000n, -1n],
+ [-0xfffffffen, 0x80000000n, -1n],
+ [-0x80000001n, 0x80000000n, -1n],
+ [-0x80000000n, 0x80000000n, -1n],
+ [-0x7fffffffn, 0x80000000n, 0n],
+ [-0x7ffffffen, 0x80000000n, 0n],
+ [-2n, 0x80000000n, 0n],
+ [-1n, 0x80000000n, 0n],
+ [0n, 0x80000000n, 0n],
+ [1n, 0x80000000n, 0n],
+ [2n, 0x80000000n, 0n],
+ [0x7ffffffen, 0x80000000n, 0n],
+ [0x7fffffffn, 0x80000000n, 0n],
+ [0x80000000n, 0x80000000n, 1n],
+ [0x80000001n, 0x80000000n, 1n],
+ [0xfffffffen, 0x80000000n, 1n],
+ [0xffffffffn, 0x80000000n, 1n],
+ [0x100000000n, 0x80000000n, 2n],
+ [0x100000001n, 0x80000000n, 2n],
+ [0x7ffffffffffffffen, 0x80000000n, 0xffffffffn],
+ [0x7fffffffffffffffn, 0x80000000n, 0xffffffffn],
+ [0x8000000000000000n, 0x80000000n, 0x100000000n],
+ [0x8000000000000001n, 0x80000000n, 0x100000000n],
+ [0xfffffffffffffffen, 0x80000000n, 0x1ffffffffn],
+ [0xffffffffffffffffn, 0x80000000n, 0x1ffffffffn],
+ [0x10000000000000000n, 0x80000000n, 0x200000000n],
+ [0x10000000000000001n, 0x80000000n, 0x200000000n],
+ [-0x10000000000000001n, 0x80000001n, -0x1fffffffcn],
+ [-0x10000000000000000n, 0x80000001n, -0x1fffffffcn],
+ [-0xffffffffffffffffn, 0x80000001n, -0x1fffffffcn],
+ [-0xfffffffffffffffen, 0x80000001n, -0x1fffffffcn],
+ [-0x8000000000000001n, 0x80000001n, -0xfffffffen],
+ [-0x8000000000000000n, 0x80000001n, -0xfffffffen],
+ [-0x7fffffffffffffffn, 0x80000001n, -0xfffffffen],
+ [-0x7ffffffffffffffen, 0x80000001n, -0xfffffffen],
+ [-0x100000001n, 0x80000001n, -1n],
+ [-0x100000000n, 0x80000001n, -1n],
+ [-0xffffffffn, 0x80000001n, -1n],
+ [-0xfffffffen, 0x80000001n, -1n],
+ [-0x80000001n, 0x80000001n, -1n],
+ [-0x80000000n, 0x80000001n, 0n],
+ [-0x7fffffffn, 0x80000001n, 0n],
+ [-0x7ffffffen, 0x80000001n, 0n],
+ [-2n, 0x80000001n, 0n],
+ [-1n, 0x80000001n, 0n],
+ [0n, 0x80000001n, 0n],
+ [1n, 0x80000001n, 0n],
+ [2n, 0x80000001n, 0n],
+ [0x7ffffffen, 0x80000001n, 0n],
+ [0x7fffffffn, 0x80000001n, 0n],
+ [0x80000000n, 0x80000001n, 0n],
+ [0x80000001n, 0x80000001n, 1n],
+ [0xfffffffen, 0x80000001n, 1n],
+ [0xffffffffn, 0x80000001n, 1n],
+ [0x100000000n, 0x80000001n, 1n],
+ [0x100000001n, 0x80000001n, 1n],
+ [0x7ffffffffffffffen, 0x80000001n, 0xfffffffen],
+ [0x7fffffffffffffffn, 0x80000001n, 0xfffffffen],
+ [0x8000000000000000n, 0x80000001n, 0xfffffffen],
+ [0x8000000000000001n, 0x80000001n, 0xfffffffen],
+ [0xfffffffffffffffen, 0x80000001n, 0x1fffffffcn],
+ [0xffffffffffffffffn, 0x80000001n, 0x1fffffffcn],
+ [0x10000000000000000n, 0x80000001n, 0x1fffffffcn],
+ [0x10000000000000001n, 0x80000001n, 0x1fffffffcn],
+ [-0x10000000000000001n, -0x80000001n, 0x1fffffffcn],
+ [-0x10000000000000000n, -0x80000001n, 0x1fffffffcn],
+ [-0xffffffffffffffffn, -0x80000001n, 0x1fffffffcn],
+ [-0xfffffffffffffffen, -0x80000001n, 0x1fffffffcn],
+ [-0x8000000000000001n, -0x80000001n, 0xfffffffen],
+ [-0x8000000000000000n, -0x80000001n, 0xfffffffen],
+ [-0x7fffffffffffffffn, -0x80000001n, 0xfffffffen],
+ [-0x7ffffffffffffffen, -0x80000001n, 0xfffffffen],
+ [-0x100000001n, -0x80000001n, 1n],
+ [-0x100000000n, -0x80000001n, 1n],
+ [-0xffffffffn, -0x80000001n, 1n],
+ [-0xfffffffen, -0x80000001n, 1n],
+ [-0x80000001n, -0x80000001n, 1n],
+ [-0x80000000n, -0x80000001n, 0n],
+ [-0x7fffffffn, -0x80000001n, 0n],
+ [-0x7ffffffen, -0x80000001n, 0n],
+ [-2n, -0x80000001n, 0n],
+ [-1n, -0x80000001n, 0n],
+ [0n, -0x80000001n, 0n],
+ [1n, -0x80000001n, 0n],
+ [2n, -0x80000001n, 0n],
+ [0x7ffffffen, -0x80000001n, 0n],
+ [0x7fffffffn, -0x80000001n, 0n],
+ [0x80000000n, -0x80000001n, 0n],
+ [0x80000001n, -0x80000001n, -1n],
+ [0xfffffffen, -0x80000001n, -1n],
+ [0xffffffffn, -0x80000001n, -1n],
+ [0x100000000n, -0x80000001n, -1n],
+ [0x100000001n, -0x80000001n, -1n],
+ [0x7ffffffffffffffen, -0x80000001n, -0xfffffffen],
+ [0x7fffffffffffffffn, -0x80000001n, -0xfffffffen],
+ [0x8000000000000000n, -0x80000001n, -0xfffffffen],
+ [0x8000000000000001n, -0x80000001n, -0xfffffffen],
+ [0xfffffffffffffffen, -0x80000001n, -0x1fffffffcn],
+ [0xffffffffffffffffn, -0x80000001n, -0x1fffffffcn],
+ [0x10000000000000000n, -0x80000001n, -0x1fffffffcn],
+ [0x10000000000000001n, -0x80000001n, -0x1fffffffcn],
+ [-0x10000000000000001n, -0x80000000n, 0x200000000n],
+ [-0x10000000000000000n, -0x80000000n, 0x200000000n],
+ [-0xffffffffffffffffn, -0x80000000n, 0x1ffffffffn],
+ [-0xfffffffffffffffen, -0x80000000n, 0x1ffffffffn],
+ [-0x8000000000000001n, -0x80000000n, 0x100000000n],
+ [-0x8000000000000000n, -0x80000000n, 0x100000000n],
+ [-0x7fffffffffffffffn, -0x80000000n, 0xffffffffn],
+ [-0x7ffffffffffffffen, -0x80000000n, 0xffffffffn],
+ [-0x100000001n, -0x80000000n, 2n],
+ [-0x100000000n, -0x80000000n, 2n],
+ [-0xffffffffn, -0x80000000n, 1n],
+ [-0xfffffffen, -0x80000000n, 1n],
+ [-0x80000001n, -0x80000000n, 1n],
+ [-0x80000000n, -0x80000000n, 1n],
+ [-0x7fffffffn, -0x80000000n, 0n],
+ [-0x7ffffffen, -0x80000000n, 0n],
+ [-2n, -0x80000000n, 0n],
+ [-1n, -0x80000000n, 0n],
+ [0n, -0x80000000n, 0n],
+ [1n, -0x80000000n, 0n],
+ [2n, -0x80000000n, 0n],
+ [0x7ffffffen, -0x80000000n, 0n],
+ [0x7fffffffn, -0x80000000n, 0n],
+ [0x80000000n, -0x80000000n, -1n],
+ [0x80000001n, -0x80000000n, -1n],
+ [0xfffffffen, -0x80000000n, -1n],
+ [0xffffffffn, -0x80000000n, -1n],
+ [0x100000000n, -0x80000000n, -2n],
+ [0x100000001n, -0x80000000n, -2n],
+ [0x7ffffffffffffffen, -0x80000000n, -0xffffffffn],
+ [0x7fffffffffffffffn, -0x80000000n, -0xffffffffn],
+ [0x8000000000000000n, -0x80000000n, -0x100000000n],
+ [0x8000000000000001n, -0x80000000n, -0x100000000n],
+ [0xfffffffffffffffen, -0x80000000n, -0x1ffffffffn],
+ [0xffffffffffffffffn, -0x80000000n, -0x1ffffffffn],
+ [0x10000000000000000n, -0x80000000n, -0x200000000n],
+ [0x10000000000000001n, -0x80000000n, -0x200000000n],
+ [-0x10000000000000001n, -0x7fffffffn, 0x200000004n],
+ [-0x10000000000000000n, -0x7fffffffn, 0x200000004n],
+ [-0xffffffffffffffffn, -0x7fffffffn, 0x200000004n],
+ [-0xfffffffffffffffen, -0x7fffffffn, 0x200000004n],
+ [-0x8000000000000001n, -0x7fffffffn, 0x100000002n],
+ [-0x8000000000000000n, -0x7fffffffn, 0x100000002n],
+ [-0x7fffffffffffffffn, -0x7fffffffn, 0x100000002n],
+ [-0x7ffffffffffffffen, -0x7fffffffn, 0x100000002n],
+ [-0x100000001n, -0x7fffffffn, 2n],
+ [-0x100000000n, -0x7fffffffn, 2n],
+ [-0xffffffffn, -0x7fffffffn, 2n],
+ [-0xfffffffen, -0x7fffffffn, 2n],
+ [-0x80000001n, -0x7fffffffn, 1n],
+ [-0x80000000n, -0x7fffffffn, 1n],
+ [-0x7fffffffn, -0x7fffffffn, 1n],
+ [-0x7ffffffen, -0x7fffffffn, 0n],
+ [-2n, -0x7fffffffn, 0n],
+ [-1n, -0x7fffffffn, 0n],
+ [0n, -0x7fffffffn, 0n],
+ [1n, -0x7fffffffn, 0n],
+ [2n, -0x7fffffffn, 0n],
+ [0x7ffffffen, -0x7fffffffn, 0n],
+ [0x7fffffffn, -0x7fffffffn, -1n],
+ [0x80000000n, -0x7fffffffn, -1n],
+ [0x80000001n, -0x7fffffffn, -1n],
+ [0xfffffffen, -0x7fffffffn, -2n],
+ [0xffffffffn, -0x7fffffffn, -2n],
+ [0x100000000n, -0x7fffffffn, -2n],
+ [0x100000001n, -0x7fffffffn, -2n],
+ [0x7ffffffffffffffen, -0x7fffffffn, -0x100000002n],
+ [0x7fffffffffffffffn, -0x7fffffffn, -0x100000002n],
+ [0x8000000000000000n, -0x7fffffffn, -0x100000002n],
+ [0x8000000000000001n, -0x7fffffffn, -0x100000002n],
+ [0xfffffffffffffffen, -0x7fffffffn, -0x200000004n],
+ [0xffffffffffffffffn, -0x7fffffffn, -0x200000004n],
+ [0x10000000000000000n, -0x7fffffffn, -0x200000004n],
+ [0x10000000000000001n, -0x7fffffffn, -0x200000004n],
+ [-0x10000000000000001n, -0x7ffffffen, 0x200000008n],
+ [-0x10000000000000000n, -0x7ffffffen, 0x200000008n],
+ [-0xffffffffffffffffn, -0x7ffffffen, 0x200000008n],
+ [-0xfffffffffffffffen, -0x7ffffffen, 0x200000008n],
+ [-0x8000000000000001n, -0x7ffffffen, 0x100000004n],
+ [-0x8000000000000000n, -0x7ffffffen, 0x100000004n],
+ [-0x7fffffffffffffffn, -0x7ffffffen, 0x100000004n],
+ [-0x7ffffffffffffffen, -0x7ffffffen, 0x100000004n],
+ [-0x100000001n, -0x7ffffffen, 2n],
+ [-0x100000000n, -0x7ffffffen, 2n],
+ [-0xffffffffn, -0x7ffffffen, 2n],
+ [-0xfffffffen, -0x7ffffffen, 2n],
+ [-0x80000001n, -0x7ffffffen, 1n],
+ [-0x80000000n, -0x7ffffffen, 1n],
+ [-0x7fffffffn, -0x7ffffffen, 1n],
+ [-0x7ffffffen, -0x7ffffffen, 1n],
+ [-2n, -0x7ffffffen, 0n],
+ [-1n, -0x7ffffffen, 0n],
+ [0n, -0x7ffffffen, 0n],
+ [1n, -0x7ffffffen, 0n],
+ [2n, -0x7ffffffen, 0n],
+ [0x7ffffffen, -0x7ffffffen, -1n],
+ [0x7fffffffn, -0x7ffffffen, -1n],
+ [0x80000000n, -0x7ffffffen, -1n],
+ [0x80000001n, -0x7ffffffen, -1n],
+ [0xfffffffen, -0x7ffffffen, -2n],
+ [0xffffffffn, -0x7ffffffen, -2n],
+ [0x100000000n, -0x7ffffffen, -2n],
+ [0x100000001n, -0x7ffffffen, -2n],
+ [0x7ffffffffffffffen, -0x7ffffffen, -0x100000004n],
+ [0x7fffffffffffffffn, -0x7ffffffen, -0x100000004n],
+ [0x8000000000000000n, -0x7ffffffen, -0x100000004n],
+ [0x8000000000000001n, -0x7ffffffen, -0x100000004n],
+ [0xfffffffffffffffen, -0x7ffffffen, -0x200000008n],
+ [0xffffffffffffffffn, -0x7ffffffen, -0x200000008n],
+ [0x10000000000000000n, -0x7ffffffen, -0x200000008n],
+ [0x10000000000000001n, -0x7ffffffen, -0x200000008n],
+ [-0x10000000000000001n, 0xfffffffen, -0x100000002n],
+ [-0x10000000000000000n, 0xfffffffen, -0x100000002n],
+ [-0xffffffffffffffffn, 0xfffffffen, -0x100000002n],
+ [-0xfffffffffffffffen, 0xfffffffen, -0x100000002n],
+ [-0x8000000000000001n, 0xfffffffen, -0x80000001n],
+ [-0x8000000000000000n, 0xfffffffen, -0x80000001n],
+ [-0x7fffffffffffffffn, 0xfffffffen, -0x80000001n],
+ [-0x7ffffffffffffffen, 0xfffffffen, -0x80000001n],
+ [-0x100000001n, 0xfffffffen, -1n],
+ [-0x100000000n, 0xfffffffen, -1n],
+ [-0xffffffffn, 0xfffffffen, -1n],
+ [-0xfffffffen, 0xfffffffen, -1n],
+ [-0x80000001n, 0xfffffffen, 0n],
+ [-0x80000000n, 0xfffffffen, 0n],
+ [-0x7fffffffn, 0xfffffffen, 0n],
+ [-0x7ffffffen, 0xfffffffen, 0n],
+ [-2n, 0xfffffffen, 0n],
+ [-1n, 0xfffffffen, 0n],
+ [0n, 0xfffffffen, 0n],
+ [1n, 0xfffffffen, 0n],
+ [2n, 0xfffffffen, 0n],
+ [0x7ffffffen, 0xfffffffen, 0n],
+ [0x7fffffffn, 0xfffffffen, 0n],
+ [0x80000000n, 0xfffffffen, 0n],
+ [0x80000001n, 0xfffffffen, 0n],
+ [0xfffffffen, 0xfffffffen, 1n],
+ [0xffffffffn, 0xfffffffen, 1n],
+ [0x100000000n, 0xfffffffen, 1n],
+ [0x100000001n, 0xfffffffen, 1n],
+ [0x7ffffffffffffffen, 0xfffffffen, 0x80000001n],
+ [0x7fffffffffffffffn, 0xfffffffen, 0x80000001n],
+ [0x8000000000000000n, 0xfffffffen, 0x80000001n],
+ [0x8000000000000001n, 0xfffffffen, 0x80000001n],
+ [0xfffffffffffffffen, 0xfffffffen, 0x100000002n],
+ [0xffffffffffffffffn, 0xfffffffen, 0x100000002n],
+ [0x10000000000000000n, 0xfffffffen, 0x100000002n],
+ [0x10000000000000001n, 0xfffffffen, 0x100000002n],
+ [-0x10000000000000001n, 0xffffffffn, -0x100000001n],
+ [-0x10000000000000000n, 0xffffffffn, -0x100000001n],
+ [-0xffffffffffffffffn, 0xffffffffn, -0x100000001n],
+ [-0xfffffffffffffffen, 0xffffffffn, -0x100000000n],
+ [-0x8000000000000001n, 0xffffffffn, -0x80000000n],
+ [-0x8000000000000000n, 0xffffffffn, -0x80000000n],
+ [-0x7fffffffffffffffn, 0xffffffffn, -0x80000000n],
+ [-0x7ffffffffffffffen, 0xffffffffn, -0x80000000n],
+ [-0x100000001n, 0xffffffffn, -1n],
+ [-0x100000000n, 0xffffffffn, -1n],
+ [-0xffffffffn, 0xffffffffn, -1n],
+ [-0xfffffffen, 0xffffffffn, 0n],
+ [-0x80000001n, 0xffffffffn, 0n],
+ [-0x80000000n, 0xffffffffn, 0n],
+ [-0x7fffffffn, 0xffffffffn, 0n],
+ [-0x7ffffffen, 0xffffffffn, 0n],
+ [-2n, 0xffffffffn, 0n],
+ [-1n, 0xffffffffn, 0n],
+ [0n, 0xffffffffn, 0n],
+ [1n, 0xffffffffn, 0n],
+ [2n, 0xffffffffn, 0n],
+ [0x7ffffffen, 0xffffffffn, 0n],
+ [0x7fffffffn, 0xffffffffn, 0n],
+ [0x80000000n, 0xffffffffn, 0n],
+ [0x80000001n, 0xffffffffn, 0n],
+ [0xfffffffen, 0xffffffffn, 0n],
+ [0xffffffffn, 0xffffffffn, 1n],
+ [0x100000000n, 0xffffffffn, 1n],
+ [0x100000001n, 0xffffffffn, 1n],
+ [0x7ffffffffffffffen, 0xffffffffn, 0x80000000n],
+ [0x7fffffffffffffffn, 0xffffffffn, 0x80000000n],
+ [0x8000000000000000n, 0xffffffffn, 0x80000000n],
+ [0x8000000000000001n, 0xffffffffn, 0x80000000n],
+ [0xfffffffffffffffen, 0xffffffffn, 0x100000000n],
+ [0xffffffffffffffffn, 0xffffffffn, 0x100000001n],
+ [0x10000000000000000n, 0xffffffffn, 0x100000001n],
+ [0x10000000000000001n, 0xffffffffn, 0x100000001n],
+ [-0x10000000000000001n, 0x100000000n, -0x100000000n],
+ [-0x10000000000000000n, 0x100000000n, -0x100000000n],
+ [-0xffffffffffffffffn, 0x100000000n, -0xffffffffn],
+ [-0xfffffffffffffffen, 0x100000000n, -0xffffffffn],
+ [-0x8000000000000001n, 0x100000000n, -0x80000000n],
+ [-0x8000000000000000n, 0x100000000n, -0x80000000n],
+ [-0x7fffffffffffffffn, 0x100000000n, -0x7fffffffn],
+ [-0x7ffffffffffffffen, 0x100000000n, -0x7fffffffn],
+ [-0x100000001n, 0x100000000n, -1n],
+ [-0x100000000n, 0x100000000n, -1n],
+ [-0xffffffffn, 0x100000000n, 0n],
+ [-0xfffffffen, 0x100000000n, 0n],
+ [-0x80000001n, 0x100000000n, 0n],
+ [-0x80000000n, 0x100000000n, 0n],
+ [-0x7fffffffn, 0x100000000n, 0n],
+ [-0x7ffffffen, 0x100000000n, 0n],
+ [-2n, 0x100000000n, 0n],
+ [-1n, 0x100000000n, 0n],
+ [0n, 0x100000000n, 0n],
+ [1n, 0x100000000n, 0n],
+ [2n, 0x100000000n, 0n],
+ [0x7ffffffen, 0x100000000n, 0n],
+ [0x7fffffffn, 0x100000000n, 0n],
+ [0x80000000n, 0x100000000n, 0n],
+ [0x80000001n, 0x100000000n, 0n],
+ [0xfffffffen, 0x100000000n, 0n],
+ [0xffffffffn, 0x100000000n, 0n],
+ [0x100000000n, 0x100000000n, 1n],
+ [0x100000001n, 0x100000000n, 1n],
+ [0x7ffffffffffffffen, 0x100000000n, 0x7fffffffn],
+ [0x7fffffffffffffffn, 0x100000000n, 0x7fffffffn],
+ [0x8000000000000000n, 0x100000000n, 0x80000000n],
+ [0x8000000000000001n, 0x100000000n, 0x80000000n],
+ [0xfffffffffffffffen, 0x100000000n, 0xffffffffn],
+ [0xffffffffffffffffn, 0x100000000n, 0xffffffffn],
+ [0x10000000000000000n, 0x100000000n, 0x100000000n],
+ [0x10000000000000001n, 0x100000000n, 0x100000000n],
+ [-0x10000000000000001n, 0x100000001n, -0xffffffffn],
+ [-0x10000000000000000n, 0x100000001n, -0xffffffffn],
+ [-0xffffffffffffffffn, 0x100000001n, -0xffffffffn],
+ [-0xfffffffffffffffen, 0x100000001n, -0xfffffffen],
+ [-0x8000000000000001n, 0x100000001n, -0x7fffffffn],
+ [-0x8000000000000000n, 0x100000001n, -0x7fffffffn],
+ [-0x7fffffffffffffffn, 0x100000001n, -0x7fffffffn],
+ [-0x7ffffffffffffffen, 0x100000001n, -0x7fffffffn],
+ [-0x100000001n, 0x100000001n, -1n],
+ [-0x100000000n, 0x100000001n, 0n],
+ [-0xffffffffn, 0x100000001n, 0n],
+ [-0xfffffffen, 0x100000001n, 0n],
+ [-0x80000001n, 0x100000001n, 0n],
+ [-0x80000000n, 0x100000001n, 0n],
+ [-0x7fffffffn, 0x100000001n, 0n],
+ [-0x7ffffffen, 0x100000001n, 0n],
+ [-2n, 0x100000001n, 0n],
+ [-1n, 0x100000001n, 0n],
+ [0n, 0x100000001n, 0n],
+ [1n, 0x100000001n, 0n],
+ [2n, 0x100000001n, 0n],
+ [0x7ffffffen, 0x100000001n, 0n],
+ [0x7fffffffn, 0x100000001n, 0n],
+ [0x80000000n, 0x100000001n, 0n],
+ [0x80000001n, 0x100000001n, 0n],
+ [0xfffffffen, 0x100000001n, 0n],
+ [0xffffffffn, 0x100000001n, 0n],
+ [0x100000000n, 0x100000001n, 0n],
+ [0x100000001n, 0x100000001n, 1n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x7fffffffn],
+ [0x7fffffffffffffffn, 0x100000001n, 0x7fffffffn],
+ [0x8000000000000000n, 0x100000001n, 0x7fffffffn],
+ [0x8000000000000001n, 0x100000001n, 0x7fffffffn],
+ [0xfffffffffffffffen, 0x100000001n, 0xfffffffen],
+ [0xffffffffffffffffn, 0x100000001n, 0xffffffffn],
+ [0x10000000000000000n, 0x100000001n, 0xffffffffn],
+ [0x10000000000000001n, 0x100000001n, 0xffffffffn],
+ [-0x10000000000000001n, -0x100000001n, 0xffffffffn],
+ [-0x10000000000000000n, -0x100000001n, 0xffffffffn],
+ [-0xffffffffffffffffn, -0x100000001n, 0xffffffffn],
+ [-0xfffffffffffffffen, -0x100000001n, 0xfffffffen],
+ [-0x8000000000000001n, -0x100000001n, 0x7fffffffn],
+ [-0x8000000000000000n, -0x100000001n, 0x7fffffffn],
+ [-0x7fffffffffffffffn, -0x100000001n, 0x7fffffffn],
+ [-0x7ffffffffffffffen, -0x100000001n, 0x7fffffffn],
+ [-0x100000001n, -0x100000001n, 1n],
+ [-0x100000000n, -0x100000001n, 0n],
+ [-0xffffffffn, -0x100000001n, 0n],
+ [-0xfffffffen, -0x100000001n, 0n],
+ [-0x80000001n, -0x100000001n, 0n],
+ [-0x80000000n, -0x100000001n, 0n],
+ [-0x7fffffffn, -0x100000001n, 0n],
+ [-0x7ffffffen, -0x100000001n, 0n],
+ [-2n, -0x100000001n, 0n],
+ [-1n, -0x100000001n, 0n],
+ [0n, -0x100000001n, 0n],
+ [1n, -0x100000001n, 0n],
+ [2n, -0x100000001n, 0n],
+ [0x7ffffffen, -0x100000001n, 0n],
+ [0x7fffffffn, -0x100000001n, 0n],
+ [0x80000000n, -0x100000001n, 0n],
+ [0x80000001n, -0x100000001n, 0n],
+ [0xfffffffen, -0x100000001n, 0n],
+ [0xffffffffn, -0x100000001n, 0n],
+ [0x100000000n, -0x100000001n, 0n],
+ [0x100000001n, -0x100000001n, -1n],
+ [0x7ffffffffffffffen, -0x100000001n, -0x7fffffffn],
+ [0x7fffffffffffffffn, -0x100000001n, -0x7fffffffn],
+ [0x8000000000000000n, -0x100000001n, -0x7fffffffn],
+ [0x8000000000000001n, -0x100000001n, -0x7fffffffn],
+ [0xfffffffffffffffen, -0x100000001n, -0xfffffffen],
+ [0xffffffffffffffffn, -0x100000001n, -0xffffffffn],
+ [0x10000000000000000n, -0x100000001n, -0xffffffffn],
+ [0x10000000000000001n, -0x100000001n, -0xffffffffn],
+ [-0x10000000000000001n, -0x100000000n, 0x100000000n],
+ [-0x10000000000000000n, -0x100000000n, 0x100000000n],
+ [-0xffffffffffffffffn, -0x100000000n, 0xffffffffn],
+ [-0xfffffffffffffffen, -0x100000000n, 0xffffffffn],
+ [-0x8000000000000001n, -0x100000000n, 0x80000000n],
+ [-0x8000000000000000n, -0x100000000n, 0x80000000n],
+ [-0x7fffffffffffffffn, -0x100000000n, 0x7fffffffn],
+ [-0x7ffffffffffffffen, -0x100000000n, 0x7fffffffn],
+ [-0x100000001n, -0x100000000n, 1n],
+ [-0x100000000n, -0x100000000n, 1n],
+ [-0xffffffffn, -0x100000000n, 0n],
+ [-0xfffffffen, -0x100000000n, 0n],
+ [-0x80000001n, -0x100000000n, 0n],
+ [-0x80000000n, -0x100000000n, 0n],
+ [-0x7fffffffn, -0x100000000n, 0n],
+ [-0x7ffffffen, -0x100000000n, 0n],
+ [-2n, -0x100000000n, 0n],
+ [-1n, -0x100000000n, 0n],
+ [0n, -0x100000000n, 0n],
+ [1n, -0x100000000n, 0n],
+ [2n, -0x100000000n, 0n],
+ [0x7ffffffen, -0x100000000n, 0n],
+ [0x7fffffffn, -0x100000000n, 0n],
+ [0x80000000n, -0x100000000n, 0n],
+ [0x80000001n, -0x100000000n, 0n],
+ [0xfffffffen, -0x100000000n, 0n],
+ [0xffffffffn, -0x100000000n, 0n],
+ [0x100000000n, -0x100000000n, -1n],
+ [0x100000001n, -0x100000000n, -1n],
+ [0x7ffffffffffffffen, -0x100000000n, -0x7fffffffn],
+ [0x7fffffffffffffffn, -0x100000000n, -0x7fffffffn],
+ [0x8000000000000000n, -0x100000000n, -0x80000000n],
+ [0x8000000000000001n, -0x100000000n, -0x80000000n],
+ [0xfffffffffffffffen, -0x100000000n, -0xffffffffn],
+ [0xffffffffffffffffn, -0x100000000n, -0xffffffffn],
+ [0x10000000000000000n, -0x100000000n, -0x100000000n],
+ [0x10000000000000001n, -0x100000000n, -0x100000000n],
+ [-0x10000000000000001n, -0xffffffffn, 0x100000001n],
+ [-0x10000000000000000n, -0xffffffffn, 0x100000001n],
+ [-0xffffffffffffffffn, -0xffffffffn, 0x100000001n],
+ [-0xfffffffffffffffen, -0xffffffffn, 0x100000000n],
+ [-0x8000000000000001n, -0xffffffffn, 0x80000000n],
+ [-0x8000000000000000n, -0xffffffffn, 0x80000000n],
+ [-0x7fffffffffffffffn, -0xffffffffn, 0x80000000n],
+ [-0x7ffffffffffffffen, -0xffffffffn, 0x80000000n],
+ [-0x100000001n, -0xffffffffn, 1n],
+ [-0x100000000n, -0xffffffffn, 1n],
+ [-0xffffffffn, -0xffffffffn, 1n],
+ [-0xfffffffen, -0xffffffffn, 0n],
+ [-0x80000001n, -0xffffffffn, 0n],
+ [-0x80000000n, -0xffffffffn, 0n],
+ [-0x7fffffffn, -0xffffffffn, 0n],
+ [-0x7ffffffen, -0xffffffffn, 0n],
+ [-2n, -0xffffffffn, 0n],
+ [-1n, -0xffffffffn, 0n],
+ [0n, -0xffffffffn, 0n],
+ [1n, -0xffffffffn, 0n],
+ [2n, -0xffffffffn, 0n],
+ [0x7ffffffen, -0xffffffffn, 0n],
+ [0x7fffffffn, -0xffffffffn, 0n],
+ [0x80000000n, -0xffffffffn, 0n],
+ [0x80000001n, -0xffffffffn, 0n],
+ [0xfffffffen, -0xffffffffn, 0n],
+ [0xffffffffn, -0xffffffffn, -1n],
+ [0x100000000n, -0xffffffffn, -1n],
+ [0x100000001n, -0xffffffffn, -1n],
+ [0x7ffffffffffffffen, -0xffffffffn, -0x80000000n],
+ [0x7fffffffffffffffn, -0xffffffffn, -0x80000000n],
+ [0x8000000000000000n, -0xffffffffn, -0x80000000n],
+ [0x8000000000000001n, -0xffffffffn, -0x80000000n],
+ [0xfffffffffffffffen, -0xffffffffn, -0x100000000n],
+ [0xffffffffffffffffn, -0xffffffffn, -0x100000001n],
+ [0x10000000000000000n, -0xffffffffn, -0x100000001n],
+ [0x10000000000000001n, -0xffffffffn, -0x100000001n],
+ [-0x10000000000000001n, -0xfffffffen, 0x100000002n],
+ [-0x10000000000000000n, -0xfffffffen, 0x100000002n],
+ [-0xffffffffffffffffn, -0xfffffffen, 0x100000002n],
+ [-0xfffffffffffffffen, -0xfffffffen, 0x100000002n],
+ [-0x8000000000000001n, -0xfffffffen, 0x80000001n],
+ [-0x8000000000000000n, -0xfffffffen, 0x80000001n],
+ [-0x7fffffffffffffffn, -0xfffffffen, 0x80000001n],
+ [-0x7ffffffffffffffen, -0xfffffffen, 0x80000001n],
+ [-0x100000001n, -0xfffffffen, 1n],
+ [-0x100000000n, -0xfffffffen, 1n],
+ [-0xffffffffn, -0xfffffffen, 1n],
+ [-0xfffffffen, -0xfffffffen, 1n],
+ [-0x80000001n, -0xfffffffen, 0n],
+ [-0x80000000n, -0xfffffffen, 0n],
+ [-0x7fffffffn, -0xfffffffen, 0n],
+ [-0x7ffffffen, -0xfffffffen, 0n],
+ [-2n, -0xfffffffen, 0n],
+ [-1n, -0xfffffffen, 0n],
+ [0n, -0xfffffffen, 0n],
+ [1n, -0xfffffffen, 0n],
+ [2n, -0xfffffffen, 0n],
+ [0x7ffffffen, -0xfffffffen, 0n],
+ [0x7fffffffn, -0xfffffffen, 0n],
+ [0x80000000n, -0xfffffffen, 0n],
+ [0x80000001n, -0xfffffffen, 0n],
+ [0xfffffffen, -0xfffffffen, -1n],
+ [0xffffffffn, -0xfffffffen, -1n],
+ [0x100000000n, -0xfffffffen, -1n],
+ [0x100000001n, -0xfffffffen, -1n],
+ [0x7ffffffffffffffen, -0xfffffffen, -0x80000001n],
+ [0x7fffffffffffffffn, -0xfffffffen, -0x80000001n],
+ [0x8000000000000000n, -0xfffffffen, -0x80000001n],
+ [0x8000000000000001n, -0xfffffffen, -0x80000001n],
+ [0xfffffffffffffffen, -0xfffffffen, -0x100000002n],
+ [0xffffffffffffffffn, -0xfffffffen, -0x100000002n],
+ [0x10000000000000000n, -0xfffffffen, -0x100000002n],
+ [0x10000000000000001n, -0xfffffffen, -0x100000002n],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, -2n],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, -2n],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, -2n],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, -2n],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, -1n],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, -1n],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, -1n],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, -1n],
+ [-0x100000001n, 0x7ffffffffffffffen, 0n],
+ [-0x100000000n, 0x7ffffffffffffffen, 0n],
+ [-0xffffffffn, 0x7ffffffffffffffen, 0n],
+ [-0xfffffffen, 0x7ffffffffffffffen, 0n],
+ [-0x80000001n, 0x7ffffffffffffffen, 0n],
+ [-0x80000000n, 0x7ffffffffffffffen, 0n],
+ [-0x7fffffffn, 0x7ffffffffffffffen, 0n],
+ [-0x7ffffffen, 0x7ffffffffffffffen, 0n],
+ [-2n, 0x7ffffffffffffffen, 0n],
+ [-1n, 0x7ffffffffffffffen, 0n],
+ [0n, 0x7ffffffffffffffen, 0n],
+ [1n, 0x7ffffffffffffffen, 0n],
+ [2n, 0x7ffffffffffffffen, 0n],
+ [0x7ffffffen, 0x7ffffffffffffffen, 0n],
+ [0x7fffffffn, 0x7ffffffffffffffen, 0n],
+ [0x80000000n, 0x7ffffffffffffffen, 0n],
+ [0x80000001n, 0x7ffffffffffffffen, 0n],
+ [0xfffffffen, 0x7ffffffffffffffen, 0n],
+ [0xffffffffn, 0x7ffffffffffffffen, 0n],
+ [0x100000000n, 0x7ffffffffffffffen, 0n],
+ [0x100000001n, 0x7ffffffffffffffen, 0n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 1n],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 1n],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 1n],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 1n],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 2n],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 2n],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 2n],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 2n],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, -2n],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, -2n],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, -2n],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, -2n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, -1n],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, -1n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, -1n],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, 0n],
+ [-0x100000001n, 0x7fffffffffffffffn, 0n],
+ [-0x100000000n, 0x7fffffffffffffffn, 0n],
+ [-0xffffffffn, 0x7fffffffffffffffn, 0n],
+ [-0xfffffffen, 0x7fffffffffffffffn, 0n],
+ [-0x80000001n, 0x7fffffffffffffffn, 0n],
+ [-0x80000000n, 0x7fffffffffffffffn, 0n],
+ [-0x7fffffffn, 0x7fffffffffffffffn, 0n],
+ [-0x7ffffffen, 0x7fffffffffffffffn, 0n],
+ [-2n, 0x7fffffffffffffffn, 0n],
+ [-1n, 0x7fffffffffffffffn, 0n],
+ [0n, 0x7fffffffffffffffn, 0n],
+ [1n, 0x7fffffffffffffffn, 0n],
+ [2n, 0x7fffffffffffffffn, 0n],
+ [0x7ffffffen, 0x7fffffffffffffffn, 0n],
+ [0x7fffffffn, 0x7fffffffffffffffn, 0n],
+ [0x80000000n, 0x7fffffffffffffffn, 0n],
+ [0x80000001n, 0x7fffffffffffffffn, 0n],
+ [0xfffffffen, 0x7fffffffffffffffn, 0n],
+ [0xffffffffn, 0x7fffffffffffffffn, 0n],
+ [0x100000000n, 0x7fffffffffffffffn, 0n],
+ [0x100000001n, 0x7fffffffffffffffn, 0n],
+ [0x7ffffffffffffffen, 0x7fffffffffffffffn, 0n],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 1n],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 1n],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 1n],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 2n],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 2n],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 2n],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 2n],
+ [-0x10000000000000001n, 0x8000000000000000n, -2n],
+ [-0x10000000000000000n, 0x8000000000000000n, -2n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, -1n],
+ [-0xfffffffffffffffen, 0x8000000000000000n, -1n],
+ [-0x8000000000000001n, 0x8000000000000000n, -1n],
+ [-0x8000000000000000n, 0x8000000000000000n, -1n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, 0n],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, 0n],
+ [-0x100000001n, 0x8000000000000000n, 0n],
+ [-0x100000000n, 0x8000000000000000n, 0n],
+ [-0xffffffffn, 0x8000000000000000n, 0n],
+ [-0xfffffffen, 0x8000000000000000n, 0n],
+ [-0x80000001n, 0x8000000000000000n, 0n],
+ [-0x80000000n, 0x8000000000000000n, 0n],
+ [-0x7fffffffn, 0x8000000000000000n, 0n],
+ [-0x7ffffffen, 0x8000000000000000n, 0n],
+ [-2n, 0x8000000000000000n, 0n],
+ [-1n, 0x8000000000000000n, 0n],
+ [0n, 0x8000000000000000n, 0n],
+ [1n, 0x8000000000000000n, 0n],
+ [2n, 0x8000000000000000n, 0n],
+ [0x7ffffffen, 0x8000000000000000n, 0n],
+ [0x7fffffffn, 0x8000000000000000n, 0n],
+ [0x80000000n, 0x8000000000000000n, 0n],
+ [0x80000001n, 0x8000000000000000n, 0n],
+ [0xfffffffen, 0x8000000000000000n, 0n],
+ [0xffffffffn, 0x8000000000000000n, 0n],
+ [0x100000000n, 0x8000000000000000n, 0n],
+ [0x100000001n, 0x8000000000000000n, 0n],
+ [0x7ffffffffffffffen, 0x8000000000000000n, 0n],
+ [0x7fffffffffffffffn, 0x8000000000000000n, 0n],
+ [0x8000000000000000n, 0x8000000000000000n, 1n],
+ [0x8000000000000001n, 0x8000000000000000n, 1n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 1n],
+ [0xffffffffffffffffn, 0x8000000000000000n, 1n],
+ [0x10000000000000000n, 0x8000000000000000n, 2n],
+ [0x10000000000000001n, 0x8000000000000000n, 2n],
+ [-0x10000000000000001n, 0x8000000000000001n, -1n],
+ [-0x10000000000000000n, 0x8000000000000001n, -1n],
+ [-0xffffffffffffffffn, 0x8000000000000001n, -1n],
+ [-0xfffffffffffffffen, 0x8000000000000001n, -1n],
+ [-0x8000000000000001n, 0x8000000000000001n, -1n],
+ [-0x8000000000000000n, 0x8000000000000001n, 0n],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, 0n],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, 0n],
+ [-0x100000001n, 0x8000000000000001n, 0n],
+ [-0x100000000n, 0x8000000000000001n, 0n],
+ [-0xffffffffn, 0x8000000000000001n, 0n],
+ [-0xfffffffen, 0x8000000000000001n, 0n],
+ [-0x80000001n, 0x8000000000000001n, 0n],
+ [-0x80000000n, 0x8000000000000001n, 0n],
+ [-0x7fffffffn, 0x8000000000000001n, 0n],
+ [-0x7ffffffen, 0x8000000000000001n, 0n],
+ [-2n, 0x8000000000000001n, 0n],
+ [-1n, 0x8000000000000001n, 0n],
+ [0n, 0x8000000000000001n, 0n],
+ [1n, 0x8000000000000001n, 0n],
+ [2n, 0x8000000000000001n, 0n],
+ [0x7ffffffen, 0x8000000000000001n, 0n],
+ [0x7fffffffn, 0x8000000000000001n, 0n],
+ [0x80000000n, 0x8000000000000001n, 0n],
+ [0x80000001n, 0x8000000000000001n, 0n],
+ [0xfffffffen, 0x8000000000000001n, 0n],
+ [0xffffffffn, 0x8000000000000001n, 0n],
+ [0x100000000n, 0x8000000000000001n, 0n],
+ [0x100000001n, 0x8000000000000001n, 0n],
+ [0x7ffffffffffffffen, 0x8000000000000001n, 0n],
+ [0x7fffffffffffffffn, 0x8000000000000001n, 0n],
+ [0x8000000000000000n, 0x8000000000000001n, 0n],
+ [0x8000000000000001n, 0x8000000000000001n, 1n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 1n],
+ [0xffffffffffffffffn, 0x8000000000000001n, 1n],
+ [0x10000000000000000n, 0x8000000000000001n, 1n],
+ [0x10000000000000001n, 0x8000000000000001n, 1n],
+ [-0x10000000000000001n, -0x8000000000000001n, 1n],
+ [-0x10000000000000000n, -0x8000000000000001n, 1n],
+ [-0xffffffffffffffffn, -0x8000000000000001n, 1n],
+ [-0xfffffffffffffffen, -0x8000000000000001n, 1n],
+ [-0x8000000000000001n, -0x8000000000000001n, 1n],
+ [-0x8000000000000000n, -0x8000000000000001n, 0n],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, 0n],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, 0n],
+ [-0x100000001n, -0x8000000000000001n, 0n],
+ [-0x100000000n, -0x8000000000000001n, 0n],
+ [-0xffffffffn, -0x8000000000000001n, 0n],
+ [-0xfffffffen, -0x8000000000000001n, 0n],
+ [-0x80000001n, -0x8000000000000001n, 0n],
+ [-0x80000000n, -0x8000000000000001n, 0n],
+ [-0x7fffffffn, -0x8000000000000001n, 0n],
+ [-0x7ffffffen, -0x8000000000000001n, 0n],
+ [-2n, -0x8000000000000001n, 0n],
+ [-1n, -0x8000000000000001n, 0n],
+ [0n, -0x8000000000000001n, 0n],
+ [1n, -0x8000000000000001n, 0n],
+ [2n, -0x8000000000000001n, 0n],
+ [0x7ffffffen, -0x8000000000000001n, 0n],
+ [0x7fffffffn, -0x8000000000000001n, 0n],
+ [0x80000000n, -0x8000000000000001n, 0n],
+ [0x80000001n, -0x8000000000000001n, 0n],
+ [0xfffffffen, -0x8000000000000001n, 0n],
+ [0xffffffffn, -0x8000000000000001n, 0n],
+ [0x100000000n, -0x8000000000000001n, 0n],
+ [0x100000001n, -0x8000000000000001n, 0n],
+ [0x7ffffffffffffffen, -0x8000000000000001n, 0n],
+ [0x7fffffffffffffffn, -0x8000000000000001n, 0n],
+ [0x8000000000000000n, -0x8000000000000001n, 0n],
+ [0x8000000000000001n, -0x8000000000000001n, -1n],
+ [0xfffffffffffffffen, -0x8000000000000001n, -1n],
+ [0xffffffffffffffffn, -0x8000000000000001n, -1n],
+ [0x10000000000000000n, -0x8000000000000001n, -1n],
+ [0x10000000000000001n, -0x8000000000000001n, -1n],
+ [-0x10000000000000001n, -0x8000000000000000n, 2n],
+ [-0x10000000000000000n, -0x8000000000000000n, 2n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, 1n],
+ [-0xfffffffffffffffen, -0x8000000000000000n, 1n],
+ [-0x8000000000000001n, -0x8000000000000000n, 1n],
+ [-0x8000000000000000n, -0x8000000000000000n, 1n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, 0n],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, 0n],
+ [-0x100000001n, -0x8000000000000000n, 0n],
+ [-0x100000000n, -0x8000000000000000n, 0n],
+ [-0xffffffffn, -0x8000000000000000n, 0n],
+ [-0xfffffffen, -0x8000000000000000n, 0n],
+ [-0x80000001n, -0x8000000000000000n, 0n],
+ [-0x80000000n, -0x8000000000000000n, 0n],
+ [-0x7fffffffn, -0x8000000000000000n, 0n],
+ [-0x7ffffffen, -0x8000000000000000n, 0n],
+ [-2n, -0x8000000000000000n, 0n],
+ [-1n, -0x8000000000000000n, 0n],
+ [0n, -0x8000000000000000n, 0n],
+ [1n, -0x8000000000000000n, 0n],
+ [2n, -0x8000000000000000n, 0n],
+ [0x7ffffffen, -0x8000000000000000n, 0n],
+ [0x7fffffffn, -0x8000000000000000n, 0n],
+ [0x80000000n, -0x8000000000000000n, 0n],
+ [0x80000001n, -0x8000000000000000n, 0n],
+ [0xfffffffen, -0x8000000000000000n, 0n],
+ [0xffffffffn, -0x8000000000000000n, 0n],
+ [0x100000000n, -0x8000000000000000n, 0n],
+ [0x100000001n, -0x8000000000000000n, 0n],
+ [0x7ffffffffffffffen, -0x8000000000000000n, 0n],
+ [0x7fffffffffffffffn, -0x8000000000000000n, 0n],
+ [0x8000000000000000n, -0x8000000000000000n, -1n],
+ [0x8000000000000001n, -0x8000000000000000n, -1n],
+ [0xfffffffffffffffen, -0x8000000000000000n, -1n],
+ [0xffffffffffffffffn, -0x8000000000000000n, -1n],
+ [0x10000000000000000n, -0x8000000000000000n, -2n],
+ [0x10000000000000001n, -0x8000000000000000n, -2n],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, 2n],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, 2n],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, 2n],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, 2n],
+ [-0x8000000000000001n, -0x7fffffffffffffffn, 1n],
+ [-0x8000000000000000n, -0x7fffffffffffffffn, 1n],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, 1n],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, 0n],
+ [-0x100000001n, -0x7fffffffffffffffn, 0n],
+ [-0x100000000n, -0x7fffffffffffffffn, 0n],
+ [-0xffffffffn, -0x7fffffffffffffffn, 0n],
+ [-0xfffffffen, -0x7fffffffffffffffn, 0n],
+ [-0x80000001n, -0x7fffffffffffffffn, 0n],
+ [-0x80000000n, -0x7fffffffffffffffn, 0n],
+ [-0x7fffffffn, -0x7fffffffffffffffn, 0n],
+ [-0x7ffffffen, -0x7fffffffffffffffn, 0n],
+ [-2n, -0x7fffffffffffffffn, 0n],
+ [-1n, -0x7fffffffffffffffn, 0n],
+ [0n, -0x7fffffffffffffffn, 0n],
+ [1n, -0x7fffffffffffffffn, 0n],
+ [2n, -0x7fffffffffffffffn, 0n],
+ [0x7ffffffen, -0x7fffffffffffffffn, 0n],
+ [0x7fffffffn, -0x7fffffffffffffffn, 0n],
+ [0x80000000n, -0x7fffffffffffffffn, 0n],
+ [0x80000001n, -0x7fffffffffffffffn, 0n],
+ [0xfffffffen, -0x7fffffffffffffffn, 0n],
+ [0xffffffffn, -0x7fffffffffffffffn, 0n],
+ [0x100000000n, -0x7fffffffffffffffn, 0n],
+ [0x100000001n, -0x7fffffffffffffffn, 0n],
+ [0x7ffffffffffffffen, -0x7fffffffffffffffn, 0n],
+ [0x7fffffffffffffffn, -0x7fffffffffffffffn, -1n],
+ [0x8000000000000000n, -0x7fffffffffffffffn, -1n],
+ [0x8000000000000001n, -0x7fffffffffffffffn, -1n],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, -2n],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, -2n],
+ [0x10000000000000000n, -0x7fffffffffffffffn, -2n],
+ [0x10000000000000001n, -0x7fffffffffffffffn, -2n],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, 2n],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, 2n],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, 2n],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, 2n],
+ [-0x8000000000000001n, -0x7ffffffffffffffen, 1n],
+ [-0x8000000000000000n, -0x7ffffffffffffffen, 1n],
+ [-0x7fffffffffffffffn, -0x7ffffffffffffffen, 1n],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, 1n],
+ [-0x100000001n, -0x7ffffffffffffffen, 0n],
+ [-0x100000000n, -0x7ffffffffffffffen, 0n],
+ [-0xffffffffn, -0x7ffffffffffffffen, 0n],
+ [-0xfffffffen, -0x7ffffffffffffffen, 0n],
+ [-0x80000001n, -0x7ffffffffffffffen, 0n],
+ [-0x80000000n, -0x7ffffffffffffffen, 0n],
+ [-0x7fffffffn, -0x7ffffffffffffffen, 0n],
+ [-0x7ffffffen, -0x7ffffffffffffffen, 0n],
+ [-2n, -0x7ffffffffffffffen, 0n],
+ [-1n, -0x7ffffffffffffffen, 0n],
+ [0n, -0x7ffffffffffffffen, 0n],
+ [1n, -0x7ffffffffffffffen, 0n],
+ [2n, -0x7ffffffffffffffen, 0n],
+ [0x7ffffffen, -0x7ffffffffffffffen, 0n],
+ [0x7fffffffn, -0x7ffffffffffffffen, 0n],
+ [0x80000000n, -0x7ffffffffffffffen, 0n],
+ [0x80000001n, -0x7ffffffffffffffen, 0n],
+ [0xfffffffen, -0x7ffffffffffffffen, 0n],
+ [0xffffffffn, -0x7ffffffffffffffen, 0n],
+ [0x100000000n, -0x7ffffffffffffffen, 0n],
+ [0x100000001n, -0x7ffffffffffffffen, 0n],
+ [0x7ffffffffffffffen, -0x7ffffffffffffffen, -1n],
+ [0x7fffffffffffffffn, -0x7ffffffffffffffen, -1n],
+ [0x8000000000000000n, -0x7ffffffffffffffen, -1n],
+ [0x8000000000000001n, -0x7ffffffffffffffen, -1n],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, -2n],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, -2n],
+ [0x10000000000000000n, -0x7ffffffffffffffen, -2n],
+ [0x10000000000000001n, -0x7ffffffffffffffen, -2n],
+ [-0x10000000000000001n, 0xfffffffffffffffen, -1n],
+ [-0x10000000000000000n, 0xfffffffffffffffen, -1n],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, -1n],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, -1n],
+ [-0x8000000000000001n, 0xfffffffffffffffen, 0n],
+ [-0x8000000000000000n, 0xfffffffffffffffen, 0n],
+ [-0x7fffffffffffffffn, 0xfffffffffffffffen, 0n],
+ [-0x7ffffffffffffffen, 0xfffffffffffffffen, 0n],
+ [-0x100000001n, 0xfffffffffffffffen, 0n],
+ [-0x100000000n, 0xfffffffffffffffen, 0n],
+ [-0xffffffffn, 0xfffffffffffffffen, 0n],
+ [-0xfffffffen, 0xfffffffffffffffen, 0n],
+ [-0x80000001n, 0xfffffffffffffffen, 0n],
+ [-0x80000000n, 0xfffffffffffffffen, 0n],
+ [-0x7fffffffn, 0xfffffffffffffffen, 0n],
+ [-0x7ffffffen, 0xfffffffffffffffen, 0n],
+ [-2n, 0xfffffffffffffffen, 0n],
+ [-1n, 0xfffffffffffffffen, 0n],
+ [0n, 0xfffffffffffffffen, 0n],
+ [1n, 0xfffffffffffffffen, 0n],
+ [2n, 0xfffffffffffffffen, 0n],
+ [0x7ffffffen, 0xfffffffffffffffen, 0n],
+ [0x7fffffffn, 0xfffffffffffffffen, 0n],
+ [0x80000000n, 0xfffffffffffffffen, 0n],
+ [0x80000001n, 0xfffffffffffffffen, 0n],
+ [0xfffffffen, 0xfffffffffffffffen, 0n],
+ [0xffffffffn, 0xfffffffffffffffen, 0n],
+ [0x100000000n, 0xfffffffffffffffen, 0n],
+ [0x100000001n, 0xfffffffffffffffen, 0n],
+ [0x7ffffffffffffffen, 0xfffffffffffffffen, 0n],
+ [0x7fffffffffffffffn, 0xfffffffffffffffen, 0n],
+ [0x8000000000000000n, 0xfffffffffffffffen, 0n],
+ [0x8000000000000001n, 0xfffffffffffffffen, 0n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 1n],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 1n],
+ [0x10000000000000000n, 0xfffffffffffffffen, 1n],
+ [0x10000000000000001n, 0xfffffffffffffffen, 1n],
+ [-0x10000000000000001n, 0xffffffffffffffffn, -1n],
+ [-0x10000000000000000n, 0xffffffffffffffffn, -1n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, -1n],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, 0n],
+ [-0x8000000000000001n, 0xffffffffffffffffn, 0n],
+ [-0x8000000000000000n, 0xffffffffffffffffn, 0n],
+ [-0x7fffffffffffffffn, 0xffffffffffffffffn, 0n],
+ [-0x7ffffffffffffffen, 0xffffffffffffffffn, 0n],
+ [-0x100000001n, 0xffffffffffffffffn, 0n],
+ [-0x100000000n, 0xffffffffffffffffn, 0n],
+ [-0xffffffffn, 0xffffffffffffffffn, 0n],
+ [-0xfffffffen, 0xffffffffffffffffn, 0n],
+ [-0x80000001n, 0xffffffffffffffffn, 0n],
+ [-0x80000000n, 0xffffffffffffffffn, 0n],
+ [-0x7fffffffn, 0xffffffffffffffffn, 0n],
+ [-0x7ffffffen, 0xffffffffffffffffn, 0n],
+ [-2n, 0xffffffffffffffffn, 0n],
+ [-1n, 0xffffffffffffffffn, 0n],
+ [0n, 0xffffffffffffffffn, 0n],
+ [1n, 0xffffffffffffffffn, 0n],
+ [2n, 0xffffffffffffffffn, 0n],
+ [0x7ffffffen, 0xffffffffffffffffn, 0n],
+ [0x7fffffffn, 0xffffffffffffffffn, 0n],
+ [0x80000000n, 0xffffffffffffffffn, 0n],
+ [0x80000001n, 0xffffffffffffffffn, 0n],
+ [0xfffffffen, 0xffffffffffffffffn, 0n],
+ [0xffffffffn, 0xffffffffffffffffn, 0n],
+ [0x100000000n, 0xffffffffffffffffn, 0n],
+ [0x100000001n, 0xffffffffffffffffn, 0n],
+ [0x7ffffffffffffffen, 0xffffffffffffffffn, 0n],
+ [0x7fffffffffffffffn, 0xffffffffffffffffn, 0n],
+ [0x8000000000000000n, 0xffffffffffffffffn, 0n],
+ [0x8000000000000001n, 0xffffffffffffffffn, 0n],
+ [0xfffffffffffffffen, 0xffffffffffffffffn, 0n],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 1n],
+ [0x10000000000000000n, 0xffffffffffffffffn, 1n],
+ [0x10000000000000001n, 0xffffffffffffffffn, 1n],
+ [-0x10000000000000001n, 0x10000000000000000n, -1n],
+ [-0x10000000000000000n, 0x10000000000000000n, -1n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, 0n],
+ [-0xfffffffffffffffen, 0x10000000000000000n, 0n],
+ [-0x8000000000000001n, 0x10000000000000000n, 0n],
+ [-0x8000000000000000n, 0x10000000000000000n, 0n],
+ [-0x7fffffffffffffffn, 0x10000000000000000n, 0n],
+ [-0x7ffffffffffffffen, 0x10000000000000000n, 0n],
+ [-0x100000001n, 0x10000000000000000n, 0n],
+ [-0x100000000n, 0x10000000000000000n, 0n],
+ [-0xffffffffn, 0x10000000000000000n, 0n],
+ [-0xfffffffen, 0x10000000000000000n, 0n],
+ [-0x80000001n, 0x10000000000000000n, 0n],
+ [-0x80000000n, 0x10000000000000000n, 0n],
+ [-0x7fffffffn, 0x10000000000000000n, 0n],
+ [-0x7ffffffen, 0x10000000000000000n, 0n],
+ [-2n, 0x10000000000000000n, 0n],
+ [-1n, 0x10000000000000000n, 0n],
+ [0n, 0x10000000000000000n, 0n],
+ [1n, 0x10000000000000000n, 0n],
+ [2n, 0x10000000000000000n, 0n],
+ [0x7ffffffen, 0x10000000000000000n, 0n],
+ [0x7fffffffn, 0x10000000000000000n, 0n],
+ [0x80000000n, 0x10000000000000000n, 0n],
+ [0x80000001n, 0x10000000000000000n, 0n],
+ [0xfffffffen, 0x10000000000000000n, 0n],
+ [0xffffffffn, 0x10000000000000000n, 0n],
+ [0x100000000n, 0x10000000000000000n, 0n],
+ [0x100000001n, 0x10000000000000000n, 0n],
+ [0x7ffffffffffffffen, 0x10000000000000000n, 0n],
+ [0x7fffffffffffffffn, 0x10000000000000000n, 0n],
+ [0x8000000000000000n, 0x10000000000000000n, 0n],
+ [0x8000000000000001n, 0x10000000000000000n, 0n],
+ [0xfffffffffffffffen, 0x10000000000000000n, 0n],
+ [0xffffffffffffffffn, 0x10000000000000000n, 0n],
+ [0x10000000000000000n, 0x10000000000000000n, 1n],
+ [0x10000000000000001n, 0x10000000000000000n, 1n],
+ [-0x10000000000000001n, 0x10000000000000001n, -1n],
+ [-0x10000000000000000n, 0x10000000000000001n, 0n],
+ [-0xffffffffffffffffn, 0x10000000000000001n, 0n],
+ [-0xfffffffffffffffen, 0x10000000000000001n, 0n],
+ [-0x8000000000000001n, 0x10000000000000001n, 0n],
+ [-0x8000000000000000n, 0x10000000000000001n, 0n],
+ [-0x7fffffffffffffffn, 0x10000000000000001n, 0n],
+ [-0x7ffffffffffffffen, 0x10000000000000001n, 0n],
+ [-0x100000001n, 0x10000000000000001n, 0n],
+ [-0x100000000n, 0x10000000000000001n, 0n],
+ [-0xffffffffn, 0x10000000000000001n, 0n],
+ [-0xfffffffen, 0x10000000000000001n, 0n],
+ [-0x80000001n, 0x10000000000000001n, 0n],
+ [-0x80000000n, 0x10000000000000001n, 0n],
+ [-0x7fffffffn, 0x10000000000000001n, 0n],
+ [-0x7ffffffen, 0x10000000000000001n, 0n],
+ [-2n, 0x10000000000000001n, 0n],
+ [-1n, 0x10000000000000001n, 0n],
+ [0n, 0x10000000000000001n, 0n],
+ [1n, 0x10000000000000001n, 0n],
+ [2n, 0x10000000000000001n, 0n],
+ [0x7ffffffen, 0x10000000000000001n, 0n],
+ [0x7fffffffn, 0x10000000000000001n, 0n],
+ [0x80000000n, 0x10000000000000001n, 0n],
+ [0x80000001n, 0x10000000000000001n, 0n],
+ [0xfffffffen, 0x10000000000000001n, 0n],
+ [0xffffffffn, 0x10000000000000001n, 0n],
+ [0x100000000n, 0x10000000000000001n, 0n],
+ [0x100000001n, 0x10000000000000001n, 0n],
+ [0x7ffffffffffffffen, 0x10000000000000001n, 0n],
+ [0x7fffffffffffffffn, 0x10000000000000001n, 0n],
+ [0x8000000000000000n, 0x10000000000000001n, 0n],
+ [0x8000000000000001n, 0x10000000000000001n, 0n],
+ [0xfffffffffffffffen, 0x10000000000000001n, 0n],
+ [0xffffffffffffffffn, 0x10000000000000001n, 0n],
+ [0x10000000000000000n, 0x10000000000000001n, 0n],
+ [0x10000000000000001n, 0x10000000000000001n, 1n],
+ [-0x10000000000000001n, -0x10000000000000001n, 1n],
+ [-0x10000000000000000n, -0x10000000000000001n, 0n],
+ [-0xffffffffffffffffn, -0x10000000000000001n, 0n],
+ [-0xfffffffffffffffen, -0x10000000000000001n, 0n],
+ [-0x8000000000000001n, -0x10000000000000001n, 0n],
+ [-0x8000000000000000n, -0x10000000000000001n, 0n],
+ [-0x7fffffffffffffffn, -0x10000000000000001n, 0n],
+ [-0x7ffffffffffffffen, -0x10000000000000001n, 0n],
+ [-0x100000001n, -0x10000000000000001n, 0n],
+ [-0x100000000n, -0x10000000000000001n, 0n],
+ [-0xffffffffn, -0x10000000000000001n, 0n],
+ [-0xfffffffen, -0x10000000000000001n, 0n],
+ [-0x80000001n, -0x10000000000000001n, 0n],
+ [-0x80000000n, -0x10000000000000001n, 0n],
+ [-0x7fffffffn, -0x10000000000000001n, 0n],
+ [-0x7ffffffen, -0x10000000000000001n, 0n],
+ [-2n, -0x10000000000000001n, 0n],
+ [-1n, -0x10000000000000001n, 0n],
+ [0n, -0x10000000000000001n, 0n],
+ [1n, -0x10000000000000001n, 0n],
+ [2n, -0x10000000000000001n, 0n],
+ [0x7ffffffen, -0x10000000000000001n, 0n],
+ [0x7fffffffn, -0x10000000000000001n, 0n],
+ [0x80000000n, -0x10000000000000001n, 0n],
+ [0x80000001n, -0x10000000000000001n, 0n],
+ [0xfffffffen, -0x10000000000000001n, 0n],
+ [0xffffffffn, -0x10000000000000001n, 0n],
+ [0x100000000n, -0x10000000000000001n, 0n],
+ [0x100000001n, -0x10000000000000001n, 0n],
+ [0x7ffffffffffffffen, -0x10000000000000001n, 0n],
+ [0x7fffffffffffffffn, -0x10000000000000001n, 0n],
+ [0x8000000000000000n, -0x10000000000000001n, 0n],
+ [0x8000000000000001n, -0x10000000000000001n, 0n],
+ [0xfffffffffffffffen, -0x10000000000000001n, 0n],
+ [0xffffffffffffffffn, -0x10000000000000001n, 0n],
+ [0x10000000000000000n, -0x10000000000000001n, 0n],
+ [0x10000000000000001n, -0x10000000000000001n, -1n],
+ [-0x10000000000000001n, -0x10000000000000000n, 1n],
+ [-0x10000000000000000n, -0x10000000000000000n, 1n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, 0n],
+ [-0xfffffffffffffffen, -0x10000000000000000n, 0n],
+ [-0x8000000000000001n, -0x10000000000000000n, 0n],
+ [-0x8000000000000000n, -0x10000000000000000n, 0n],
+ [-0x7fffffffffffffffn, -0x10000000000000000n, 0n],
+ [-0x7ffffffffffffffen, -0x10000000000000000n, 0n],
+ [-0x100000001n, -0x10000000000000000n, 0n],
+ [-0x100000000n, -0x10000000000000000n, 0n],
+ [-0xffffffffn, -0x10000000000000000n, 0n],
+ [-0xfffffffen, -0x10000000000000000n, 0n],
+ [-0x80000001n, -0x10000000000000000n, 0n],
+ [-0x80000000n, -0x10000000000000000n, 0n],
+ [-0x7fffffffn, -0x10000000000000000n, 0n],
+ [-0x7ffffffen, -0x10000000000000000n, 0n],
+ [-2n, -0x10000000000000000n, 0n],
+ [-1n, -0x10000000000000000n, 0n],
+ [0n, -0x10000000000000000n, 0n],
+ [1n, -0x10000000000000000n, 0n],
+ [2n, -0x10000000000000000n, 0n],
+ [0x7ffffffen, -0x10000000000000000n, 0n],
+ [0x7fffffffn, -0x10000000000000000n, 0n],
+ [0x80000000n, -0x10000000000000000n, 0n],
+ [0x80000001n, -0x10000000000000000n, 0n],
+ [0xfffffffen, -0x10000000000000000n, 0n],
+ [0xffffffffn, -0x10000000000000000n, 0n],
+ [0x100000000n, -0x10000000000000000n, 0n],
+ [0x100000001n, -0x10000000000000000n, 0n],
+ [0x7ffffffffffffffen, -0x10000000000000000n, 0n],
+ [0x7fffffffffffffffn, -0x10000000000000000n, 0n],
+ [0x8000000000000000n, -0x10000000000000000n, 0n],
+ [0x8000000000000001n, -0x10000000000000000n, 0n],
+ [0xfffffffffffffffen, -0x10000000000000000n, 0n],
+ [0xffffffffffffffffn, -0x10000000000000000n, 0n],
+ [0x10000000000000000n, -0x10000000000000000n, -1n],
+ [0x10000000000000001n, -0x10000000000000000n, -1n],
+ [-0x10000000000000001n, -0xffffffffffffffffn, 1n],
+ [-0x10000000000000000n, -0xffffffffffffffffn, 1n],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, 1n],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, 0n],
+ [-0x8000000000000001n, -0xffffffffffffffffn, 0n],
+ [-0x8000000000000000n, -0xffffffffffffffffn, 0n],
+ [-0x7fffffffffffffffn, -0xffffffffffffffffn, 0n],
+ [-0x7ffffffffffffffen, -0xffffffffffffffffn, 0n],
+ [-0x100000001n, -0xffffffffffffffffn, 0n],
+ [-0x100000000n, -0xffffffffffffffffn, 0n],
+ [-0xffffffffn, -0xffffffffffffffffn, 0n],
+ [-0xfffffffen, -0xffffffffffffffffn, 0n],
+ [-0x80000001n, -0xffffffffffffffffn, 0n],
+ [-0x80000000n, -0xffffffffffffffffn, 0n],
+ [-0x7fffffffn, -0xffffffffffffffffn, 0n],
+ [-0x7ffffffen, -0xffffffffffffffffn, 0n],
+ [-2n, -0xffffffffffffffffn, 0n],
+ [-1n, -0xffffffffffffffffn, 0n],
+ [0n, -0xffffffffffffffffn, 0n],
+ [1n, -0xffffffffffffffffn, 0n],
+ [2n, -0xffffffffffffffffn, 0n],
+ [0x7ffffffen, -0xffffffffffffffffn, 0n],
+ [0x7fffffffn, -0xffffffffffffffffn, 0n],
+ [0x80000000n, -0xffffffffffffffffn, 0n],
+ [0x80000001n, -0xffffffffffffffffn, 0n],
+ [0xfffffffen, -0xffffffffffffffffn, 0n],
+ [0xffffffffn, -0xffffffffffffffffn, 0n],
+ [0x100000000n, -0xffffffffffffffffn, 0n],
+ [0x100000001n, -0xffffffffffffffffn, 0n],
+ [0x7ffffffffffffffen, -0xffffffffffffffffn, 0n],
+ [0x7fffffffffffffffn, -0xffffffffffffffffn, 0n],
+ [0x8000000000000000n, -0xffffffffffffffffn, 0n],
+ [0x8000000000000001n, -0xffffffffffffffffn, 0n],
+ [0xfffffffffffffffen, -0xffffffffffffffffn, 0n],
+ [0xffffffffffffffffn, -0xffffffffffffffffn, -1n],
+ [0x10000000000000000n, -0xffffffffffffffffn, -1n],
+ [0x10000000000000001n, -0xffffffffffffffffn, -1n],
+ [-0x10000000000000001n, -0xfffffffffffffffen, 1n],
+ [-0x10000000000000000n, -0xfffffffffffffffen, 1n],
+ [-0xffffffffffffffffn, -0xfffffffffffffffen, 1n],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, 1n],
+ [-0x8000000000000001n, -0xfffffffffffffffen, 0n],
+ [-0x8000000000000000n, -0xfffffffffffffffen, 0n],
+ [-0x7fffffffffffffffn, -0xfffffffffffffffen, 0n],
+ [-0x7ffffffffffffffen, -0xfffffffffffffffen, 0n],
+ [-0x100000001n, -0xfffffffffffffffen, 0n],
+ [-0x100000000n, -0xfffffffffffffffen, 0n],
+ [-0xffffffffn, -0xfffffffffffffffen, 0n],
+ [-0xfffffffen, -0xfffffffffffffffen, 0n],
+ [-0x80000001n, -0xfffffffffffffffen, 0n],
+ [-0x80000000n, -0xfffffffffffffffen, 0n],
+ [-0x7fffffffn, -0xfffffffffffffffen, 0n],
+ [-0x7ffffffen, -0xfffffffffffffffen, 0n],
+ [-2n, -0xfffffffffffffffen, 0n],
+ [-1n, -0xfffffffffffffffen, 0n],
+ [0n, -0xfffffffffffffffen, 0n],
+ [1n, -0xfffffffffffffffen, 0n],
+ [2n, -0xfffffffffffffffen, 0n],
+ [0x7ffffffen, -0xfffffffffffffffen, 0n],
+ [0x7fffffffn, -0xfffffffffffffffen, 0n],
+ [0x80000000n, -0xfffffffffffffffen, 0n],
+ [0x80000001n, -0xfffffffffffffffen, 0n],
+ [0xfffffffen, -0xfffffffffffffffen, 0n],
+ [0xffffffffn, -0xfffffffffffffffen, 0n],
+ [0x100000000n, -0xfffffffffffffffen, 0n],
+ [0x100000001n, -0xfffffffffffffffen, 0n],
+ [0x7ffffffffffffffen, -0xfffffffffffffffen, 0n],
+ [0x7fffffffffffffffn, -0xfffffffffffffffen, 0n],
+ [0x8000000000000000n, -0xfffffffffffffffen, 0n],
+ [0x8000000000000001n, -0xfffffffffffffffen, 0n],
+ [0xfffffffffffffffen, -0xfffffffffffffffen, -1n],
+ [0xffffffffffffffffn, -0xfffffffffffffffen, -1n],
+ [0x10000000000000000n, -0xfffffffffffffffen, -1n],
+ [0x10000000000000001n, -0xfffffffffffffffen, -1n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs / rhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-inc.js b/js/src/jit-test/tests/bigint/bigint-inc.js
new file mode 100644
index 0000000000..cb63c2e8a7
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-inc.js
@@ -0,0 +1,51 @@
+const tests = [
+ [-0x10000000000000001n, -0x10000000000000000n],
+ [-0x10000000000000000n, -0xffffffffffffffffn],
+ [-0xffffffffffffffffn, -0xfffffffffffffffen],
+ [-0xfffffffffffffffen, -0xfffffffffffffffdn],
+ [-0x8000000000000001n, -0x8000000000000000n],
+ [-0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, -0x7ffffffffffffffen],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffdn],
+ [-0x100000001n, -0x100000000n],
+ [-0x100000000n, -0xffffffffn],
+ [-0xffffffffn, -0xfffffffen],
+ [-0xfffffffen, -0xfffffffdn],
+ [-0x80000001n, -0x80000000n],
+ [-0x80000000n, -0x7fffffffn],
+ [-0x7fffffffn, -0x7ffffffen],
+ [-0x7ffffffen, -0x7ffffffdn],
+ [-2n, -1n],
+ [-1n, 0n],
+ [0n, 1n],
+ [1n, 2n],
+ [2n, 3n],
+ [0x7ffffffen, 0x7fffffffn],
+ [0x7fffffffn, 0x80000000n],
+ [0x80000000n, 0x80000001n],
+ [0x80000001n, 0x80000002n],
+ [0xfffffffen, 0xffffffffn],
+ [0xffffffffn, 0x100000000n],
+ [0x100000000n, 0x100000001n],
+ [0x100000001n, 0x100000002n],
+ [0x7ffffffffffffffen, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 0x8000000000000000n],
+ [0x8000000000000000n, 0x8000000000000001n],
+ [0x8000000000000001n, 0x8000000000000002n],
+ [0xfffffffffffffffen, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 0x10000000000000000n],
+ [0x10000000000000000n, 0x10000000000000001n],
+ [0x10000000000000001n, 0x10000000000000002n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(++input, expected);
+ }
+}
+
+for (let i = 0; i < 200; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-lsh.js b/js/src/jit-test/tests/bigint/bigint-lsh.js
new file mode 100644
index 0000000000..dd5ea6f35d
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-lsh.js
@@ -0,0 +1,894 @@
+const tests = [
+ [-0x10000000000000001n, 0n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0n, -0x100000001n],
+ [-0x100000000n, 0n, -0x100000000n],
+ [-0xffffffffn, 0n, -0xffffffffn],
+ [-0xfffffffen, 0n, -0xfffffffen],
+ [-0x80000001n, 0n, -0x80000001n],
+ [-0x80000000n, 0n, -0x80000000n],
+ [-0x7fffffffn, 0n, -0x7fffffffn],
+ [-0x7ffffffen, 0n, -0x7ffffffen],
+ [-9n, 0n, -9n],
+ [-8n, 0n, -8n],
+ [-7n, 0n, -7n],
+ [-6n, 0n, -6n],
+ [-5n, 0n, -5n],
+ [-4n, 0n, -4n],
+ [-3n, 0n, -3n],
+ [-2n, 0n, -2n],
+ [-1n, 0n, -1n],
+ [0n, 0n, 0n],
+ [1n, 0n, 1n],
+ [2n, 0n, 2n],
+ [3n, 0n, 3n],
+ [4n, 0n, 4n],
+ [5n, 0n, 5n],
+ [6n, 0n, 6n],
+ [7n, 0n, 7n],
+ [8n, 0n, 8n],
+ [9n, 0n, 9n],
+ [0x7ffffffen, 0n, 0x7ffffffen],
+ [0x7fffffffn, 0n, 0x7fffffffn],
+ [0x80000000n, 0n, 0x80000000n],
+ [0x80000001n, 0n, 0x80000001n],
+ [0xfffffffen, 0n, 0xfffffffen],
+ [0xffffffffn, 0n, 0xffffffffn],
+ [0x100000000n, 0n, 0x100000000n],
+ [0x100000001n, 0n, 0x100000001n],
+ [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0n, 0x8000000000000000n],
+ [0x8000000000000001n, 0n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0n, 0x10000000000000000n],
+ [0x10000000000000001n, 0n, 0x10000000000000001n],
+ [-0x10000000000000001n, 1n, -0x20000000000000002n],
+ [-0x10000000000000000n, 1n, -0x20000000000000000n],
+ [-0xffffffffffffffffn, 1n, -0x1fffffffffffffffen],
+ [-0xfffffffffffffffen, 1n, -0x1fffffffffffffffcn],
+ [-0x8000000000000001n, 1n, -0x10000000000000002n],
+ [-0x8000000000000000n, 1n, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, 1n, -0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, 1n, -0xfffffffffffffffcn],
+ [-0x100000001n, 1n, -0x200000002n],
+ [-0x100000000n, 1n, -0x200000000n],
+ [-0xffffffffn, 1n, -0x1fffffffen],
+ [-0xfffffffen, 1n, -0x1fffffffcn],
+ [-0x80000001n, 1n, -0x100000002n],
+ [-0x80000000n, 1n, -0x100000000n],
+ [-0x7fffffffn, 1n, -0xfffffffen],
+ [-0x7ffffffen, 1n, -0xfffffffcn],
+ [-9n, 1n, -18n],
+ [-8n, 1n, -16n],
+ [-7n, 1n, -14n],
+ [-6n, 1n, -12n],
+ [-5n, 1n, -10n],
+ [-4n, 1n, -8n],
+ [-3n, 1n, -6n],
+ [-2n, 1n, -4n],
+ [-1n, 1n, -2n],
+ [0n, 1n, 0n],
+ [1n, 1n, 2n],
+ [2n, 1n, 4n],
+ [3n, 1n, 6n],
+ [4n, 1n, 8n],
+ [5n, 1n, 10n],
+ [6n, 1n, 12n],
+ [7n, 1n, 14n],
+ [8n, 1n, 16n],
+ [9n, 1n, 18n],
+ [0x7ffffffen, 1n, 0xfffffffcn],
+ [0x7fffffffn, 1n, 0xfffffffen],
+ [0x80000000n, 1n, 0x100000000n],
+ [0x80000001n, 1n, 0x100000002n],
+ [0xfffffffen, 1n, 0x1fffffffcn],
+ [0xffffffffn, 1n, 0x1fffffffen],
+ [0x100000000n, 1n, 0x200000000n],
+ [0x100000001n, 1n, 0x200000002n],
+ [0x7ffffffffffffffen, 1n, 0xfffffffffffffffcn],
+ [0x7fffffffffffffffn, 1n, 0xfffffffffffffffen],
+ [0x8000000000000000n, 1n, 0x10000000000000000n],
+ [0x8000000000000001n, 1n, 0x10000000000000002n],
+ [0xfffffffffffffffen, 1n, 0x1fffffffffffffffcn],
+ [0xffffffffffffffffn, 1n, 0x1fffffffffffffffen],
+ [0x10000000000000000n, 1n, 0x20000000000000000n],
+ [0x10000000000000001n, 1n, 0x20000000000000002n],
+ [-0x10000000000000001n, 2n, -0x40000000000000004n],
+ [-0x10000000000000000n, 2n, -0x40000000000000000n],
+ [-0xffffffffffffffffn, 2n, -0x3fffffffffffffffcn],
+ [-0xfffffffffffffffen, 2n, -0x3fffffffffffffff8n],
+ [-0x8000000000000001n, 2n, -0x20000000000000004n],
+ [-0x8000000000000000n, 2n, -0x20000000000000000n],
+ [-0x7fffffffffffffffn, 2n, -0x1fffffffffffffffcn],
+ [-0x7ffffffffffffffen, 2n, -0x1fffffffffffffff8n],
+ [-0x100000001n, 2n, -0x400000004n],
+ [-0x100000000n, 2n, -0x400000000n],
+ [-0xffffffffn, 2n, -0x3fffffffcn],
+ [-0xfffffffen, 2n, -0x3fffffff8n],
+ [-0x80000001n, 2n, -0x200000004n],
+ [-0x80000000n, 2n, -0x200000000n],
+ [-0x7fffffffn, 2n, -0x1fffffffcn],
+ [-0x7ffffffen, 2n, -0x1fffffff8n],
+ [-9n, 2n, -36n],
+ [-8n, 2n, -32n],
+ [-7n, 2n, -28n],
+ [-6n, 2n, -24n],
+ [-5n, 2n, -20n],
+ [-4n, 2n, -16n],
+ [-3n, 2n, -12n],
+ [-2n, 2n, -8n],
+ [-1n, 2n, -4n],
+ [0n, 2n, 0n],
+ [1n, 2n, 4n],
+ [2n, 2n, 8n],
+ [3n, 2n, 12n],
+ [4n, 2n, 16n],
+ [5n, 2n, 20n],
+ [6n, 2n, 24n],
+ [7n, 2n, 28n],
+ [8n, 2n, 32n],
+ [9n, 2n, 36n],
+ [0x7ffffffen, 2n, 0x1fffffff8n],
+ [0x7fffffffn, 2n, 0x1fffffffcn],
+ [0x80000000n, 2n, 0x200000000n],
+ [0x80000001n, 2n, 0x200000004n],
+ [0xfffffffen, 2n, 0x3fffffff8n],
+ [0xffffffffn, 2n, 0x3fffffffcn],
+ [0x100000000n, 2n, 0x400000000n],
+ [0x100000001n, 2n, 0x400000004n],
+ [0x7ffffffffffffffen, 2n, 0x1fffffffffffffff8n],
+ [0x7fffffffffffffffn, 2n, 0x1fffffffffffffffcn],
+ [0x8000000000000000n, 2n, 0x20000000000000000n],
+ [0x8000000000000001n, 2n, 0x20000000000000004n],
+ [0xfffffffffffffffen, 2n, 0x3fffffffffffffff8n],
+ [0xffffffffffffffffn, 2n, 0x3fffffffffffffffcn],
+ [0x10000000000000000n, 2n, 0x40000000000000000n],
+ [0x10000000000000001n, 2n, 0x40000000000000004n],
+ [-0x10000000000000001n, 3n, -0x80000000000000008n],
+ [-0x10000000000000000n, 3n, -0x80000000000000000n],
+ [-0xffffffffffffffffn, 3n, -0x7fffffffffffffff8n],
+ [-0xfffffffffffffffen, 3n, -0x7fffffffffffffff0n],
+ [-0x8000000000000001n, 3n, -0x40000000000000008n],
+ [-0x8000000000000000n, 3n, -0x40000000000000000n],
+ [-0x7fffffffffffffffn, 3n, -0x3fffffffffffffff8n],
+ [-0x7ffffffffffffffen, 3n, -0x3fffffffffffffff0n],
+ [-0x100000001n, 3n, -0x800000008n],
+ [-0x100000000n, 3n, -0x800000000n],
+ [-0xffffffffn, 3n, -0x7fffffff8n],
+ [-0xfffffffen, 3n, -0x7fffffff0n],
+ [-0x80000001n, 3n, -0x400000008n],
+ [-0x80000000n, 3n, -0x400000000n],
+ [-0x7fffffffn, 3n, -0x3fffffff8n],
+ [-0x7ffffffen, 3n, -0x3fffffff0n],
+ [-9n, 3n, -72n],
+ [-8n, 3n, -64n],
+ [-7n, 3n, -56n],
+ [-6n, 3n, -48n],
+ [-5n, 3n, -40n],
+ [-4n, 3n, -32n],
+ [-3n, 3n, -24n],
+ [-2n, 3n, -16n],
+ [-1n, 3n, -8n],
+ [0n, 3n, 0n],
+ [1n, 3n, 8n],
+ [2n, 3n, 16n],
+ [3n, 3n, 24n],
+ [4n, 3n, 32n],
+ [5n, 3n, 40n],
+ [6n, 3n, 48n],
+ [7n, 3n, 56n],
+ [8n, 3n, 64n],
+ [9n, 3n, 72n],
+ [0x7ffffffen, 3n, 0x3fffffff0n],
+ [0x7fffffffn, 3n, 0x3fffffff8n],
+ [0x80000000n, 3n, 0x400000000n],
+ [0x80000001n, 3n, 0x400000008n],
+ [0xfffffffen, 3n, 0x7fffffff0n],
+ [0xffffffffn, 3n, 0x7fffffff8n],
+ [0x100000000n, 3n, 0x800000000n],
+ [0x100000001n, 3n, 0x800000008n],
+ [0x7ffffffffffffffen, 3n, 0x3fffffffffffffff0n],
+ [0x7fffffffffffffffn, 3n, 0x3fffffffffffffff8n],
+ [0x8000000000000000n, 3n, 0x40000000000000000n],
+ [0x8000000000000001n, 3n, 0x40000000000000008n],
+ [0xfffffffffffffffen, 3n, 0x7fffffffffffffff0n],
+ [0xffffffffffffffffn, 3n, 0x7fffffffffffffff8n],
+ [0x10000000000000000n, 3n, 0x80000000000000000n],
+ [0x10000000000000001n, 3n, 0x80000000000000008n],
+ [-0x10000000000000001n, 4n, -0x100000000000000010n],
+ [-0x10000000000000000n, 4n, -0x100000000000000000n],
+ [-0xffffffffffffffffn, 4n, -0xffffffffffffffff0n],
+ [-0xfffffffffffffffen, 4n, -0xfffffffffffffffe0n],
+ [-0x8000000000000001n, 4n, -0x80000000000000010n],
+ [-0x8000000000000000n, 4n, -0x80000000000000000n],
+ [-0x7fffffffffffffffn, 4n, -0x7fffffffffffffff0n],
+ [-0x7ffffffffffffffen, 4n, -0x7ffffffffffffffe0n],
+ [-0x100000001n, 4n, -0x1000000010n],
+ [-0x100000000n, 4n, -0x1000000000n],
+ [-0xffffffffn, 4n, -0xffffffff0n],
+ [-0xfffffffen, 4n, -0xfffffffe0n],
+ [-0x80000001n, 4n, -0x800000010n],
+ [-0x80000000n, 4n, -0x800000000n],
+ [-0x7fffffffn, 4n, -0x7fffffff0n],
+ [-0x7ffffffen, 4n, -0x7ffffffe0n],
+ [-9n, 4n, -144n],
+ [-8n, 4n, -128n],
+ [-7n, 4n, -112n],
+ [-6n, 4n, -96n],
+ [-5n, 4n, -80n],
+ [-4n, 4n, -64n],
+ [-3n, 4n, -48n],
+ [-2n, 4n, -32n],
+ [-1n, 4n, -16n],
+ [0n, 4n, 0n],
+ [1n, 4n, 16n],
+ [2n, 4n, 32n],
+ [3n, 4n, 48n],
+ [4n, 4n, 64n],
+ [5n, 4n, 80n],
+ [6n, 4n, 96n],
+ [7n, 4n, 112n],
+ [8n, 4n, 128n],
+ [9n, 4n, 144n],
+ [0x7ffffffen, 4n, 0x7ffffffe0n],
+ [0x7fffffffn, 4n, 0x7fffffff0n],
+ [0x80000000n, 4n, 0x800000000n],
+ [0x80000001n, 4n, 0x800000010n],
+ [0xfffffffen, 4n, 0xfffffffe0n],
+ [0xffffffffn, 4n, 0xffffffff0n],
+ [0x100000000n, 4n, 0x1000000000n],
+ [0x100000001n, 4n, 0x1000000010n],
+ [0x7ffffffffffffffen, 4n, 0x7ffffffffffffffe0n],
+ [0x7fffffffffffffffn, 4n, 0x7fffffffffffffff0n],
+ [0x8000000000000000n, 4n, 0x80000000000000000n],
+ [0x8000000000000001n, 4n, 0x80000000000000010n],
+ [0xfffffffffffffffen, 4n, 0xfffffffffffffffe0n],
+ [0xffffffffffffffffn, 4n, 0xffffffffffffffff0n],
+ [0x10000000000000000n, 4n, 0x100000000000000000n],
+ [0x10000000000000001n, 4n, 0x100000000000000010n],
+ [-0x10000000000000001n, 31n, -0x800000000000000080000000n],
+ [-0x10000000000000000n, 31n, -0x800000000000000000000000n],
+ [-0xffffffffffffffffn, 31n, -0x7fffffffffffffff80000000n],
+ [-0xfffffffffffffffen, 31n, -0x7fffffffffffffff00000000n],
+ [-0x8000000000000001n, 31n, -0x400000000000000080000000n],
+ [-0x8000000000000000n, 31n, -0x400000000000000000000000n],
+ [-0x7fffffffffffffffn, 31n, -0x3fffffffffffffff80000000n],
+ [-0x7ffffffffffffffen, 31n, -0x3fffffffffffffff00000000n],
+ [-0x100000001n, 31n, -0x8000000080000000n],
+ [-0x100000000n, 31n, -0x8000000000000000n],
+ [-0xffffffffn, 31n, -0x7fffffff80000000n],
+ [-0xfffffffen, 31n, -0x7fffffff00000000n],
+ [-0x80000001n, 31n, -0x4000000080000000n],
+ [-0x80000000n, 31n, -0x4000000000000000n],
+ [-0x7fffffffn, 31n, -0x3fffffff80000000n],
+ [-0x7ffffffen, 31n, -0x3fffffff00000000n],
+ [-9n, 31n, -0x480000000n],
+ [-8n, 31n, -0x400000000n],
+ [-7n, 31n, -0x380000000n],
+ [-6n, 31n, -0x300000000n],
+ [-5n, 31n, -0x280000000n],
+ [-4n, 31n, -0x200000000n],
+ [-3n, 31n, -0x180000000n],
+ [-2n, 31n, -0x100000000n],
+ [-1n, 31n, -0x80000000n],
+ [0n, 31n, 0n],
+ [1n, 31n, 0x80000000n],
+ [2n, 31n, 0x100000000n],
+ [3n, 31n, 0x180000000n],
+ [4n, 31n, 0x200000000n],
+ [5n, 31n, 0x280000000n],
+ [6n, 31n, 0x300000000n],
+ [7n, 31n, 0x380000000n],
+ [8n, 31n, 0x400000000n],
+ [9n, 31n, 0x480000000n],
+ [0x7ffffffen, 31n, 0x3fffffff00000000n],
+ [0x7fffffffn, 31n, 0x3fffffff80000000n],
+ [0x80000000n, 31n, 0x4000000000000000n],
+ [0x80000001n, 31n, 0x4000000080000000n],
+ [0xfffffffen, 31n, 0x7fffffff00000000n],
+ [0xffffffffn, 31n, 0x7fffffff80000000n],
+ [0x100000000n, 31n, 0x8000000000000000n],
+ [0x100000001n, 31n, 0x8000000080000000n],
+ [0x7ffffffffffffffen, 31n, 0x3fffffffffffffff00000000n],
+ [0x7fffffffffffffffn, 31n, 0x3fffffffffffffff80000000n],
+ [0x8000000000000000n, 31n, 0x400000000000000000000000n],
+ [0x8000000000000001n, 31n, 0x400000000000000080000000n],
+ [0xfffffffffffffffen, 31n, 0x7fffffffffffffff00000000n],
+ [0xffffffffffffffffn, 31n, 0x7fffffffffffffff80000000n],
+ [0x10000000000000000n, 31n, 0x800000000000000000000000n],
+ [0x10000000000000001n, 31n, 0x800000000000000080000000n],
+ [-0x10000000000000001n, 32n, -0x1000000000000000100000000n],
+ [-0x10000000000000000n, 32n, -0x1000000000000000000000000n],
+ [-0xffffffffffffffffn, 32n, -0xffffffffffffffff00000000n],
+ [-0xfffffffffffffffen, 32n, -0xfffffffffffffffe00000000n],
+ [-0x8000000000000001n, 32n, -0x800000000000000100000000n],
+ [-0x8000000000000000n, 32n, -0x800000000000000000000000n],
+ [-0x7fffffffffffffffn, 32n, -0x7fffffffffffffff00000000n],
+ [-0x7ffffffffffffffen, 32n, -0x7ffffffffffffffe00000000n],
+ [-0x100000001n, 32n, -0x10000000100000000n],
+ [-0x100000000n, 32n, -0x10000000000000000n],
+ [-0xffffffffn, 32n, -0xffffffff00000000n],
+ [-0xfffffffen, 32n, -0xfffffffe00000000n],
+ [-0x80000001n, 32n, -0x8000000100000000n],
+ [-0x80000000n, 32n, -0x8000000000000000n],
+ [-0x7fffffffn, 32n, -0x7fffffff00000000n],
+ [-0x7ffffffen, 32n, -0x7ffffffe00000000n],
+ [-9n, 32n, -0x900000000n],
+ [-8n, 32n, -0x800000000n],
+ [-7n, 32n, -0x700000000n],
+ [-6n, 32n, -0x600000000n],
+ [-5n, 32n, -0x500000000n],
+ [-4n, 32n, -0x400000000n],
+ [-3n, 32n, -0x300000000n],
+ [-2n, 32n, -0x200000000n],
+ [-1n, 32n, -0x100000000n],
+ [0n, 32n, 0n],
+ [1n, 32n, 0x100000000n],
+ [2n, 32n, 0x200000000n],
+ [3n, 32n, 0x300000000n],
+ [4n, 32n, 0x400000000n],
+ [5n, 32n, 0x500000000n],
+ [6n, 32n, 0x600000000n],
+ [7n, 32n, 0x700000000n],
+ [8n, 32n, 0x800000000n],
+ [9n, 32n, 0x900000000n],
+ [0x7ffffffen, 32n, 0x7ffffffe00000000n],
+ [0x7fffffffn, 32n, 0x7fffffff00000000n],
+ [0x80000000n, 32n, 0x8000000000000000n],
+ [0x80000001n, 32n, 0x8000000100000000n],
+ [0xfffffffen, 32n, 0xfffffffe00000000n],
+ [0xffffffffn, 32n, 0xffffffff00000000n],
+ [0x100000000n, 32n, 0x10000000000000000n],
+ [0x100000001n, 32n, 0x10000000100000000n],
+ [0x7ffffffffffffffen, 32n, 0x7ffffffffffffffe00000000n],
+ [0x7fffffffffffffffn, 32n, 0x7fffffffffffffff00000000n],
+ [0x8000000000000000n, 32n, 0x800000000000000000000000n],
+ [0x8000000000000001n, 32n, 0x800000000000000100000000n],
+ [0xfffffffffffffffen, 32n, 0xfffffffffffffffe00000000n],
+ [0xffffffffffffffffn, 32n, 0xffffffffffffffff00000000n],
+ [0x10000000000000000n, 32n, 0x1000000000000000000000000n],
+ [0x10000000000000001n, 32n, 0x1000000000000000100000000n],
+ [-0x10000000000000001n, 63n, -0x80000000000000008000000000000000n],
+ [-0x10000000000000000n, 63n, -0x80000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 63n, -0x7fffffffffffffff8000000000000000n],
+ [-0xfffffffffffffffen, 63n, -0x7fffffffffffffff0000000000000000n],
+ [-0x8000000000000001n, 63n, -0x40000000000000008000000000000000n],
+ [-0x8000000000000000n, 63n, -0x40000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 63n, -0x3fffffffffffffff8000000000000000n],
+ [-0x7ffffffffffffffen, 63n, -0x3fffffffffffffff0000000000000000n],
+ [-0x100000001n, 63n, -0x800000008000000000000000n],
+ [-0x100000000n, 63n, -0x800000000000000000000000n],
+ [-0xffffffffn, 63n, -0x7fffffff8000000000000000n],
+ [-0xfffffffen, 63n, -0x7fffffff0000000000000000n],
+ [-0x80000001n, 63n, -0x400000008000000000000000n],
+ [-0x80000000n, 63n, -0x400000000000000000000000n],
+ [-0x7fffffffn, 63n, -0x3fffffff8000000000000000n],
+ [-0x7ffffffen, 63n, -0x3fffffff0000000000000000n],
+ [-9n, 63n, -0x48000000000000000n],
+ [-8n, 63n, -0x40000000000000000n],
+ [-7n, 63n, -0x38000000000000000n],
+ [-6n, 63n, -0x30000000000000000n],
+ [-5n, 63n, -0x28000000000000000n],
+ [-4n, 63n, -0x20000000000000000n],
+ [-3n, 63n, -0x18000000000000000n],
+ [-2n, 63n, -0x10000000000000000n],
+ [-1n, 63n, -0x8000000000000000n],
+ [0n, 63n, 0n],
+ [1n, 63n, 0x8000000000000000n],
+ [2n, 63n, 0x10000000000000000n],
+ [3n, 63n, 0x18000000000000000n],
+ [4n, 63n, 0x20000000000000000n],
+ [5n, 63n, 0x28000000000000000n],
+ [6n, 63n, 0x30000000000000000n],
+ [7n, 63n, 0x38000000000000000n],
+ [8n, 63n, 0x40000000000000000n],
+ [9n, 63n, 0x48000000000000000n],
+ [0x7ffffffen, 63n, 0x3fffffff0000000000000000n],
+ [0x7fffffffn, 63n, 0x3fffffff8000000000000000n],
+ [0x80000000n, 63n, 0x400000000000000000000000n],
+ [0x80000001n, 63n, 0x400000008000000000000000n],
+ [0xfffffffen, 63n, 0x7fffffff0000000000000000n],
+ [0xffffffffn, 63n, 0x7fffffff8000000000000000n],
+ [0x100000000n, 63n, 0x800000000000000000000000n],
+ [0x100000001n, 63n, 0x800000008000000000000000n],
+ [0x7ffffffffffffffen, 63n, 0x3fffffffffffffff0000000000000000n],
+ [0x7fffffffffffffffn, 63n, 0x3fffffffffffffff8000000000000000n],
+ [0x8000000000000000n, 63n, 0x40000000000000000000000000000000n],
+ [0x8000000000000001n, 63n, 0x40000000000000008000000000000000n],
+ [0xfffffffffffffffen, 63n, 0x7fffffffffffffff0000000000000000n],
+ [0xffffffffffffffffn, 63n, 0x7fffffffffffffff8000000000000000n],
+ [0x10000000000000000n, 63n, 0x80000000000000000000000000000000n],
+ [0x10000000000000001n, 63n, 0x80000000000000008000000000000000n],
+ [-0x10000000000000001n, 64n, -0x100000000000000010000000000000000n],
+ [-0x10000000000000000n, 64n, -0x100000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 64n, -0xffffffffffffffff0000000000000000n],
+ [-0xfffffffffffffffen, 64n, -0xfffffffffffffffe0000000000000000n],
+ [-0x8000000000000001n, 64n, -0x80000000000000010000000000000000n],
+ [-0x8000000000000000n, 64n, -0x80000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 64n, -0x7fffffffffffffff0000000000000000n],
+ [-0x7ffffffffffffffen, 64n, -0x7ffffffffffffffe0000000000000000n],
+ [-0x100000001n, 64n, -0x1000000010000000000000000n],
+ [-0x100000000n, 64n, -0x1000000000000000000000000n],
+ [-0xffffffffn, 64n, -0xffffffff0000000000000000n],
+ [-0xfffffffen, 64n, -0xfffffffe0000000000000000n],
+ [-0x80000001n, 64n, -0x800000010000000000000000n],
+ [-0x80000000n, 64n, -0x800000000000000000000000n],
+ [-0x7fffffffn, 64n, -0x7fffffff0000000000000000n],
+ [-0x7ffffffen, 64n, -0x7ffffffe0000000000000000n],
+ [-9n, 64n, -0x90000000000000000n],
+ [-8n, 64n, -0x80000000000000000n],
+ [-7n, 64n, -0x70000000000000000n],
+ [-6n, 64n, -0x60000000000000000n],
+ [-5n, 64n, -0x50000000000000000n],
+ [-4n, 64n, -0x40000000000000000n],
+ [-3n, 64n, -0x30000000000000000n],
+ [-2n, 64n, -0x20000000000000000n],
+ [-1n, 64n, -0x10000000000000000n],
+ [0n, 64n, 0n],
+ [1n, 64n, 0x10000000000000000n],
+ [2n, 64n, 0x20000000000000000n],
+ [3n, 64n, 0x30000000000000000n],
+ [4n, 64n, 0x40000000000000000n],
+ [5n, 64n, 0x50000000000000000n],
+ [6n, 64n, 0x60000000000000000n],
+ [7n, 64n, 0x70000000000000000n],
+ [8n, 64n, 0x80000000000000000n],
+ [9n, 64n, 0x90000000000000000n],
+ [0x7ffffffen, 64n, 0x7ffffffe0000000000000000n],
+ [0x7fffffffn, 64n, 0x7fffffff0000000000000000n],
+ [0x80000000n, 64n, 0x800000000000000000000000n],
+ [0x80000001n, 64n, 0x800000010000000000000000n],
+ [0xfffffffen, 64n, 0xfffffffe0000000000000000n],
+ [0xffffffffn, 64n, 0xffffffff0000000000000000n],
+ [0x100000000n, 64n, 0x1000000000000000000000000n],
+ [0x100000001n, 64n, 0x1000000010000000000000000n],
+ [0x7ffffffffffffffen, 64n, 0x7ffffffffffffffe0000000000000000n],
+ [0x7fffffffffffffffn, 64n, 0x7fffffffffffffff0000000000000000n],
+ [0x8000000000000000n, 64n, 0x80000000000000000000000000000000n],
+ [0x8000000000000001n, 64n, 0x80000000000000010000000000000000n],
+ [0xfffffffffffffffen, 64n, 0xfffffffffffffffe0000000000000000n],
+ [0xffffffffffffffffn, 64n, 0xffffffffffffffff0000000000000000n],
+ [0x10000000000000000n, 64n, 0x100000000000000000000000000000000n],
+ [0x10000000000000001n, 64n, 0x100000000000000010000000000000000n],
+ [-0x10000000000000001n, -1n, -0x8000000000000001n],
+ [-0x10000000000000000n, -1n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, -1n, -0x8000000000000000n],
+ [-0xfffffffffffffffen, -1n, -0x7fffffffffffffffn],
+ [-0x8000000000000001n, -1n, -0x4000000000000001n],
+ [-0x8000000000000000n, -1n, -0x4000000000000000n],
+ [-0x7fffffffffffffffn, -1n, -0x4000000000000000n],
+ [-0x7ffffffffffffffen, -1n, -0x3fffffffffffffffn],
+ [-0x100000001n, -1n, -0x80000001n],
+ [-0x100000000n, -1n, -0x80000000n],
+ [-0xffffffffn, -1n, -0x80000000n],
+ [-0xfffffffen, -1n, -0x7fffffffn],
+ [-0x80000001n, -1n, -0x40000001n],
+ [-0x80000000n, -1n, -0x40000000n],
+ [-0x7fffffffn, -1n, -0x40000000n],
+ [-0x7ffffffen, -1n, -0x3fffffffn],
+ [-9n, -1n, -5n],
+ [-8n, -1n, -4n],
+ [-7n, -1n, -4n],
+ [-6n, -1n, -3n],
+ [-5n, -1n, -3n],
+ [-4n, -1n, -2n],
+ [-3n, -1n, -2n],
+ [-2n, -1n, -1n],
+ [-1n, -1n, -1n],
+ [0n, -1n, 0n],
+ [1n, -1n, 0n],
+ [2n, -1n, 1n],
+ [3n, -1n, 1n],
+ [4n, -1n, 2n],
+ [5n, -1n, 2n],
+ [6n, -1n, 3n],
+ [7n, -1n, 3n],
+ [8n, -1n, 4n],
+ [9n, -1n, 4n],
+ [0x7ffffffen, -1n, 0x3fffffffn],
+ [0x7fffffffn, -1n, 0x3fffffffn],
+ [0x80000000n, -1n, 0x40000000n],
+ [0x80000001n, -1n, 0x40000000n],
+ [0xfffffffen, -1n, 0x7fffffffn],
+ [0xffffffffn, -1n, 0x7fffffffn],
+ [0x100000000n, -1n, 0x80000000n],
+ [0x100000001n, -1n, 0x80000000n],
+ [0x7ffffffffffffffen, -1n, 0x3fffffffffffffffn],
+ [0x7fffffffffffffffn, -1n, 0x3fffffffffffffffn],
+ [0x8000000000000000n, -1n, 0x4000000000000000n],
+ [0x8000000000000001n, -1n, 0x4000000000000000n],
+ [0xfffffffffffffffen, -1n, 0x7fffffffffffffffn],
+ [0xffffffffffffffffn, -1n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, -1n, 0x8000000000000000n],
+ [0x10000000000000001n, -1n, 0x8000000000000000n],
+ [-0x10000000000000001n, -2n, -0x4000000000000001n],
+ [-0x10000000000000000n, -2n, -0x4000000000000000n],
+ [-0xffffffffffffffffn, -2n, -0x4000000000000000n],
+ [-0xfffffffffffffffen, -2n, -0x4000000000000000n],
+ [-0x8000000000000001n, -2n, -0x2000000000000001n],
+ [-0x8000000000000000n, -2n, -0x2000000000000000n],
+ [-0x7fffffffffffffffn, -2n, -0x2000000000000000n],
+ [-0x7ffffffffffffffen, -2n, -0x2000000000000000n],
+ [-0x100000001n, -2n, -0x40000001n],
+ [-0x100000000n, -2n, -0x40000000n],
+ [-0xffffffffn, -2n, -0x40000000n],
+ [-0xfffffffen, -2n, -0x40000000n],
+ [-0x80000001n, -2n, -0x20000001n],
+ [-0x80000000n, -2n, -0x20000000n],
+ [-0x7fffffffn, -2n, -0x20000000n],
+ [-0x7ffffffen, -2n, -0x20000000n],
+ [-9n, -2n, -3n],
+ [-8n, -2n, -2n],
+ [-7n, -2n, -2n],
+ [-6n, -2n, -2n],
+ [-5n, -2n, -2n],
+ [-4n, -2n, -1n],
+ [-3n, -2n, -1n],
+ [-2n, -2n, -1n],
+ [-1n, -2n, -1n],
+ [0n, -2n, 0n],
+ [1n, -2n, 0n],
+ [2n, -2n, 0n],
+ [3n, -2n, 0n],
+ [4n, -2n, 1n],
+ [5n, -2n, 1n],
+ [6n, -2n, 1n],
+ [7n, -2n, 1n],
+ [8n, -2n, 2n],
+ [9n, -2n, 2n],
+ [0x7ffffffen, -2n, 0x1fffffffn],
+ [0x7fffffffn, -2n, 0x1fffffffn],
+ [0x80000000n, -2n, 0x20000000n],
+ [0x80000001n, -2n, 0x20000000n],
+ [0xfffffffen, -2n, 0x3fffffffn],
+ [0xffffffffn, -2n, 0x3fffffffn],
+ [0x100000000n, -2n, 0x40000000n],
+ [0x100000001n, -2n, 0x40000000n],
+ [0x7ffffffffffffffen, -2n, 0x1fffffffffffffffn],
+ [0x7fffffffffffffffn, -2n, 0x1fffffffffffffffn],
+ [0x8000000000000000n, -2n, 0x2000000000000000n],
+ [0x8000000000000001n, -2n, 0x2000000000000000n],
+ [0xfffffffffffffffen, -2n, 0x3fffffffffffffffn],
+ [0xffffffffffffffffn, -2n, 0x3fffffffffffffffn],
+ [0x10000000000000000n, -2n, 0x4000000000000000n],
+ [0x10000000000000001n, -2n, 0x4000000000000000n],
+ [-0x10000000000000001n, -3n, -0x2000000000000001n],
+ [-0x10000000000000000n, -3n, -0x2000000000000000n],
+ [-0xffffffffffffffffn, -3n, -0x2000000000000000n],
+ [-0xfffffffffffffffen, -3n, -0x2000000000000000n],
+ [-0x8000000000000001n, -3n, -0x1000000000000001n],
+ [-0x8000000000000000n, -3n, -0x1000000000000000n],
+ [-0x7fffffffffffffffn, -3n, -0x1000000000000000n],
+ [-0x7ffffffffffffffen, -3n, -0x1000000000000000n],
+ [-0x100000001n, -3n, -0x20000001n],
+ [-0x100000000n, -3n, -0x20000000n],
+ [-0xffffffffn, -3n, -0x20000000n],
+ [-0xfffffffen, -3n, -0x20000000n],
+ [-0x80000001n, -3n, -0x10000001n],
+ [-0x80000000n, -3n, -0x10000000n],
+ [-0x7fffffffn, -3n, -0x10000000n],
+ [-0x7ffffffen, -3n, -0x10000000n],
+ [-9n, -3n, -2n],
+ [-8n, -3n, -1n],
+ [-7n, -3n, -1n],
+ [-6n, -3n, -1n],
+ [-5n, -3n, -1n],
+ [-4n, -3n, -1n],
+ [-3n, -3n, -1n],
+ [-2n, -3n, -1n],
+ [-1n, -3n, -1n],
+ [0n, -3n, 0n],
+ [1n, -3n, 0n],
+ [2n, -3n, 0n],
+ [3n, -3n, 0n],
+ [4n, -3n, 0n],
+ [5n, -3n, 0n],
+ [6n, -3n, 0n],
+ [7n, -3n, 0n],
+ [8n, -3n, 1n],
+ [9n, -3n, 1n],
+ [0x7ffffffen, -3n, 0xfffffffn],
+ [0x7fffffffn, -3n, 0xfffffffn],
+ [0x80000000n, -3n, 0x10000000n],
+ [0x80000001n, -3n, 0x10000000n],
+ [0xfffffffen, -3n, 0x1fffffffn],
+ [0xffffffffn, -3n, 0x1fffffffn],
+ [0x100000000n, -3n, 0x20000000n],
+ [0x100000001n, -3n, 0x20000000n],
+ [0x7ffffffffffffffen, -3n, 0xfffffffffffffffn],
+ [0x7fffffffffffffffn, -3n, 0xfffffffffffffffn],
+ [0x8000000000000000n, -3n, 0x1000000000000000n],
+ [0x8000000000000001n, -3n, 0x1000000000000000n],
+ [0xfffffffffffffffen, -3n, 0x1fffffffffffffffn],
+ [0xffffffffffffffffn, -3n, 0x1fffffffffffffffn],
+ [0x10000000000000000n, -3n, 0x2000000000000000n],
+ [0x10000000000000001n, -3n, 0x2000000000000000n],
+ [-0x10000000000000001n, -4n, -0x1000000000000001n],
+ [-0x10000000000000000n, -4n, -0x1000000000000000n],
+ [-0xffffffffffffffffn, -4n, -0x1000000000000000n],
+ [-0xfffffffffffffffen, -4n, -0x1000000000000000n],
+ [-0x8000000000000001n, -4n, -0x800000000000001n],
+ [-0x8000000000000000n, -4n, -0x800000000000000n],
+ [-0x7fffffffffffffffn, -4n, -0x800000000000000n],
+ [-0x7ffffffffffffffen, -4n, -0x800000000000000n],
+ [-0x100000001n, -4n, -0x10000001n],
+ [-0x100000000n, -4n, -0x10000000n],
+ [-0xffffffffn, -4n, -0x10000000n],
+ [-0xfffffffen, -4n, -0x10000000n],
+ [-0x80000001n, -4n, -0x8000001n],
+ [-0x80000000n, -4n, -0x8000000n],
+ [-0x7fffffffn, -4n, -0x8000000n],
+ [-0x7ffffffen, -4n, -0x8000000n],
+ [-9n, -4n, -1n],
+ [-8n, -4n, -1n],
+ [-7n, -4n, -1n],
+ [-6n, -4n, -1n],
+ [-5n, -4n, -1n],
+ [-4n, -4n, -1n],
+ [-3n, -4n, -1n],
+ [-2n, -4n, -1n],
+ [-1n, -4n, -1n],
+ [0n, -4n, 0n],
+ [1n, -4n, 0n],
+ [2n, -4n, 0n],
+ [3n, -4n, 0n],
+ [4n, -4n, 0n],
+ [5n, -4n, 0n],
+ [6n, -4n, 0n],
+ [7n, -4n, 0n],
+ [8n, -4n, 0n],
+ [9n, -4n, 0n],
+ [0x7ffffffen, -4n, 0x7ffffffn],
+ [0x7fffffffn, -4n, 0x7ffffffn],
+ [0x80000000n, -4n, 0x8000000n],
+ [0x80000001n, -4n, 0x8000000n],
+ [0xfffffffen, -4n, 0xfffffffn],
+ [0xffffffffn, -4n, 0xfffffffn],
+ [0x100000000n, -4n, 0x10000000n],
+ [0x100000001n, -4n, 0x10000000n],
+ [0x7ffffffffffffffen, -4n, 0x7ffffffffffffffn],
+ [0x7fffffffffffffffn, -4n, 0x7ffffffffffffffn],
+ [0x8000000000000000n, -4n, 0x800000000000000n],
+ [0x8000000000000001n, -4n, 0x800000000000000n],
+ [0xfffffffffffffffen, -4n, 0xfffffffffffffffn],
+ [0xffffffffffffffffn, -4n, 0xfffffffffffffffn],
+ [0x10000000000000000n, -4n, 0x1000000000000000n],
+ [0x10000000000000001n, -4n, 0x1000000000000000n],
+ [-0x10000000000000001n, -31n, -0x200000001n],
+ [-0x10000000000000000n, -31n, -0x200000000n],
+ [-0xffffffffffffffffn, -31n, -0x200000000n],
+ [-0xfffffffffffffffen, -31n, -0x200000000n],
+ [-0x8000000000000001n, -31n, -0x100000001n],
+ [-0x8000000000000000n, -31n, -0x100000000n],
+ [-0x7fffffffffffffffn, -31n, -0x100000000n],
+ [-0x7ffffffffffffffen, -31n, -0x100000000n],
+ [-0x100000001n, -31n, -3n],
+ [-0x100000000n, -31n, -2n],
+ [-0xffffffffn, -31n, -2n],
+ [-0xfffffffen, -31n, -2n],
+ [-0x80000001n, -31n, -2n],
+ [-0x80000000n, -31n, -1n],
+ [-0x7fffffffn, -31n, -1n],
+ [-0x7ffffffen, -31n, -1n],
+ [-9n, -31n, -1n],
+ [-8n, -31n, -1n],
+ [-7n, -31n, -1n],
+ [-6n, -31n, -1n],
+ [-5n, -31n, -1n],
+ [-4n, -31n, -1n],
+ [-3n, -31n, -1n],
+ [-2n, -31n, -1n],
+ [-1n, -31n, -1n],
+ [0n, -31n, 0n],
+ [1n, -31n, 0n],
+ [2n, -31n, 0n],
+ [3n, -31n, 0n],
+ [4n, -31n, 0n],
+ [5n, -31n, 0n],
+ [6n, -31n, 0n],
+ [7n, -31n, 0n],
+ [8n, -31n, 0n],
+ [9n, -31n, 0n],
+ [0x7ffffffen, -31n, 0n],
+ [0x7fffffffn, -31n, 0n],
+ [0x80000000n, -31n, 1n],
+ [0x80000001n, -31n, 1n],
+ [0xfffffffen, -31n, 1n],
+ [0xffffffffn, -31n, 1n],
+ [0x100000000n, -31n, 2n],
+ [0x100000001n, -31n, 2n],
+ [0x7ffffffffffffffen, -31n, 0xffffffffn],
+ [0x7fffffffffffffffn, -31n, 0xffffffffn],
+ [0x8000000000000000n, -31n, 0x100000000n],
+ [0x8000000000000001n, -31n, 0x100000000n],
+ [0xfffffffffffffffen, -31n, 0x1ffffffffn],
+ [0xffffffffffffffffn, -31n, 0x1ffffffffn],
+ [0x10000000000000000n, -31n, 0x200000000n],
+ [0x10000000000000001n, -31n, 0x200000000n],
+ [-0x10000000000000001n, -32n, -0x100000001n],
+ [-0x10000000000000000n, -32n, -0x100000000n],
+ [-0xffffffffffffffffn, -32n, -0x100000000n],
+ [-0xfffffffffffffffen, -32n, -0x100000000n],
+ [-0x8000000000000001n, -32n, -0x80000001n],
+ [-0x8000000000000000n, -32n, -0x80000000n],
+ [-0x7fffffffffffffffn, -32n, -0x80000000n],
+ [-0x7ffffffffffffffen, -32n, -0x80000000n],
+ [-0x100000001n, -32n, -2n],
+ [-0x100000000n, -32n, -1n],
+ [-0xffffffffn, -32n, -1n],
+ [-0xfffffffen, -32n, -1n],
+ [-0x80000001n, -32n, -1n],
+ [-0x80000000n, -32n, -1n],
+ [-0x7fffffffn, -32n, -1n],
+ [-0x7ffffffen, -32n, -1n],
+ [-9n, -32n, -1n],
+ [-8n, -32n, -1n],
+ [-7n, -32n, -1n],
+ [-6n, -32n, -1n],
+ [-5n, -32n, -1n],
+ [-4n, -32n, -1n],
+ [-3n, -32n, -1n],
+ [-2n, -32n, -1n],
+ [-1n, -32n, -1n],
+ [0n, -32n, 0n],
+ [1n, -32n, 0n],
+ [2n, -32n, 0n],
+ [3n, -32n, 0n],
+ [4n, -32n, 0n],
+ [5n, -32n, 0n],
+ [6n, -32n, 0n],
+ [7n, -32n, 0n],
+ [8n, -32n, 0n],
+ [9n, -32n, 0n],
+ [0x7ffffffen, -32n, 0n],
+ [0x7fffffffn, -32n, 0n],
+ [0x80000000n, -32n, 0n],
+ [0x80000001n, -32n, 0n],
+ [0xfffffffen, -32n, 0n],
+ [0xffffffffn, -32n, 0n],
+ [0x100000000n, -32n, 1n],
+ [0x100000001n, -32n, 1n],
+ [0x7ffffffffffffffen, -32n, 0x7fffffffn],
+ [0x7fffffffffffffffn, -32n, 0x7fffffffn],
+ [0x8000000000000000n, -32n, 0x80000000n],
+ [0x8000000000000001n, -32n, 0x80000000n],
+ [0xfffffffffffffffen, -32n, 0xffffffffn],
+ [0xffffffffffffffffn, -32n, 0xffffffffn],
+ [0x10000000000000000n, -32n, 0x100000000n],
+ [0x10000000000000001n, -32n, 0x100000000n],
+ [-0x10000000000000001n, -63n, -3n],
+ [-0x10000000000000000n, -63n, -2n],
+ [-0xffffffffffffffffn, -63n, -2n],
+ [-0xfffffffffffffffen, -63n, -2n],
+ [-0x8000000000000001n, -63n, -2n],
+ [-0x8000000000000000n, -63n, -1n],
+ [-0x7fffffffffffffffn, -63n, -1n],
+ [-0x7ffffffffffffffen, -63n, -1n],
+ [-0x100000001n, -63n, -1n],
+ [-0x100000000n, -63n, -1n],
+ [-0xffffffffn, -63n, -1n],
+ [-0xfffffffen, -63n, -1n],
+ [-0x80000001n, -63n, -1n],
+ [-0x80000000n, -63n, -1n],
+ [-0x7fffffffn, -63n, -1n],
+ [-0x7ffffffen, -63n, -1n],
+ [-9n, -63n, -1n],
+ [-8n, -63n, -1n],
+ [-7n, -63n, -1n],
+ [-6n, -63n, -1n],
+ [-5n, -63n, -1n],
+ [-4n, -63n, -1n],
+ [-3n, -63n, -1n],
+ [-2n, -63n, -1n],
+ [-1n, -63n, -1n],
+ [0n, -63n, 0n],
+ [1n, -63n, 0n],
+ [2n, -63n, 0n],
+ [3n, -63n, 0n],
+ [4n, -63n, 0n],
+ [5n, -63n, 0n],
+ [6n, -63n, 0n],
+ [7n, -63n, 0n],
+ [8n, -63n, 0n],
+ [9n, -63n, 0n],
+ [0x7ffffffen, -63n, 0n],
+ [0x7fffffffn, -63n, 0n],
+ [0x80000000n, -63n, 0n],
+ [0x80000001n, -63n, 0n],
+ [0xfffffffen, -63n, 0n],
+ [0xffffffffn, -63n, 0n],
+ [0x100000000n, -63n, 0n],
+ [0x100000001n, -63n, 0n],
+ [0x7ffffffffffffffen, -63n, 0n],
+ [0x7fffffffffffffffn, -63n, 0n],
+ [0x8000000000000000n, -63n, 1n],
+ [0x8000000000000001n, -63n, 1n],
+ [0xfffffffffffffffen, -63n, 1n],
+ [0xffffffffffffffffn, -63n, 1n],
+ [0x10000000000000000n, -63n, 2n],
+ [0x10000000000000001n, -63n, 2n],
+ [-0x10000000000000001n, -64n, -2n],
+ [-0x10000000000000000n, -64n, -1n],
+ [-0xffffffffffffffffn, -64n, -1n],
+ [-0xfffffffffffffffen, -64n, -1n],
+ [-0x8000000000000001n, -64n, -1n],
+ [-0x8000000000000000n, -64n, -1n],
+ [-0x7fffffffffffffffn, -64n, -1n],
+ [-0x7ffffffffffffffen, -64n, -1n],
+ [-0x100000001n, -64n, -1n],
+ [-0x100000000n, -64n, -1n],
+ [-0xffffffffn, -64n, -1n],
+ [-0xfffffffen, -64n, -1n],
+ [-0x80000001n, -64n, -1n],
+ [-0x80000000n, -64n, -1n],
+ [-0x7fffffffn, -64n, -1n],
+ [-0x7ffffffen, -64n, -1n],
+ [-9n, -64n, -1n],
+ [-8n, -64n, -1n],
+ [-7n, -64n, -1n],
+ [-6n, -64n, -1n],
+ [-5n, -64n, -1n],
+ [-4n, -64n, -1n],
+ [-3n, -64n, -1n],
+ [-2n, -64n, -1n],
+ [-1n, -64n, -1n],
+ [0n, -64n, 0n],
+ [1n, -64n, 0n],
+ [2n, -64n, 0n],
+ [3n, -64n, 0n],
+ [4n, -64n, 0n],
+ [5n, -64n, 0n],
+ [6n, -64n, 0n],
+ [7n, -64n, 0n],
+ [8n, -64n, 0n],
+ [9n, -64n, 0n],
+ [0x7ffffffen, -64n, 0n],
+ [0x7fffffffn, -64n, 0n],
+ [0x80000000n, -64n, 0n],
+ [0x80000001n, -64n, 0n],
+ [0xfffffffen, -64n, 0n],
+ [0xffffffffn, -64n, 0n],
+ [0x100000000n, -64n, 0n],
+ [0x100000001n, -64n, 0n],
+ [0x7ffffffffffffffen, -64n, 0n],
+ [0x7fffffffffffffffn, -64n, 0n],
+ [0x8000000000000000n, -64n, 0n],
+ [0x8000000000000001n, -64n, 0n],
+ [0xfffffffffffffffen, -64n, 0n],
+ [0xffffffffffffffffn, -64n, 0n],
+ [0x10000000000000000n, -64n, 1n],
+ [0x10000000000000001n, -64n, 1n],
+];
+
+// Cases not covered above.
+tests.push(
+ // Negative shift with sign-bit set when interpreted as pointer-sized value (32-bit).
+ [-1n, -0xf000_0000n, -1n],
+ [0n, -0xf000_0000n, 0n],
+ [1n, -0xf000_0000n, 0n],
+
+ // Negative shift with sign-bit set when interpreted as pointer-sized value (64-bit).
+ [-1n, -0xf000_0000_0000_0000n, -1n],
+ [0n, -0xf000_0000_0000_0000n, 0n],
+ [1n, -0xf000_0000_0000_0000n, 0n],
+);
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs << rhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-mod-bailout.js b/js/src/jit-test/tests/bigint/bigint-mod-bailout.js
new file mode 100644
index 0000000000..91deab5116
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-mod-bailout.js
@@ -0,0 +1,31 @@
+// |jit-test| --ion-warmup-threshold=20
+
+function testBailout() {
+ function f(v, r) {
+ for (var i = 0; i < 50; ++i) {
+ // Ensure DCE and LICM don't eliminate modulus when the divisor is zero.
+ if (i === 0) {
+ r();
+ }
+ 1n % v;
+ 1n % v;
+ 1n % v;
+ }
+ }
+
+ var result = [];
+ function r() {
+ result.push("ok");
+ }
+
+ do {
+ result.length = 0;
+ try {
+ f(1n, r);
+ f(1n, r);
+ f(0n, r);
+ } catch (e) {}
+ assertEq(result.length, 3);
+ } while (!inIon());
+}
+testBailout();
diff --git a/js/src/jit-test/tests/bigint/bigint-mod-by-zero.js b/js/src/jit-test/tests/bigint/bigint-mod-by-zero.js
new file mode 100644
index 0000000000..cfa56efa98
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-mod-by-zero.js
@@ -0,0 +1,16 @@
+// Fallible BigInt modulus should have a resume point and its alias set
+// should record that exceptions can be thrown.
+function resumeAfterException(t) {
+ for (var i = 0; i < 2; i++) {
+ try {
+ var x = 1;
+ 1n % 1n;
+ x = 2;
+ 1n % t;
+ } catch (e) {
+ assertEq(x, 2);
+ }
+ }
+}
+resumeAfterException(1n);
+resumeAfterException(0n);
diff --git a/js/src/jit-test/tests/bigint/bigint-mod.js b/js/src/jit-test/tests/bigint/bigint-mod.js
new file mode 100644
index 0000000000..375e9f8e68
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-mod.js
@@ -0,0 +1,1346 @@
+const tests = [
+ [-0x10000000000000001n, -2n, -1n],
+ [-0x10000000000000000n, -2n, 0n],
+ [-0xffffffffffffffffn, -2n, -1n],
+ [-0xfffffffffffffffen, -2n, 0n],
+ [-0x8000000000000001n, -2n, -1n],
+ [-0x8000000000000000n, -2n, 0n],
+ [-0x7fffffffffffffffn, -2n, -1n],
+ [-0x7ffffffffffffffen, -2n, 0n],
+ [-0x100000001n, -2n, -1n],
+ [-0x100000000n, -2n, 0n],
+ [-0xffffffffn, -2n, -1n],
+ [-0xfffffffen, -2n, 0n],
+ [-0x80000001n, -2n, -1n],
+ [-0x80000000n, -2n, 0n],
+ [-0x7fffffffn, -2n, -1n],
+ [-0x7ffffffen, -2n, 0n],
+ [-2n, -2n, 0n],
+ [-1n, -2n, -1n],
+ [0n, -2n, 0n],
+ [1n, -2n, 1n],
+ [2n, -2n, 0n],
+ [0x7ffffffen, -2n, 0n],
+ [0x7fffffffn, -2n, 1n],
+ [0x80000000n, -2n, 0n],
+ [0x80000001n, -2n, 1n],
+ [0xfffffffen, -2n, 0n],
+ [0xffffffffn, -2n, 1n],
+ [0x100000000n, -2n, 0n],
+ [0x100000001n, -2n, 1n],
+ [0x7ffffffffffffffen, -2n, 0n],
+ [0x7fffffffffffffffn, -2n, 1n],
+ [0x8000000000000000n, -2n, 0n],
+ [0x8000000000000001n, -2n, 1n],
+ [0xfffffffffffffffen, -2n, 0n],
+ [0xffffffffffffffffn, -2n, 1n],
+ [0x10000000000000000n, -2n, 0n],
+ [0x10000000000000001n, -2n, 1n],
+ [-0x10000000000000001n, -1n, 0n],
+ [-0x10000000000000000n, -1n, 0n],
+ [-0xffffffffffffffffn, -1n, 0n],
+ [-0xfffffffffffffffen, -1n, 0n],
+ [-0x8000000000000001n, -1n, 0n],
+ [-0x8000000000000000n, -1n, 0n],
+ [-0x7fffffffffffffffn, -1n, 0n],
+ [-0x7ffffffffffffffen, -1n, 0n],
+ [-0x100000001n, -1n, 0n],
+ [-0x100000000n, -1n, 0n],
+ [-0xffffffffn, -1n, 0n],
+ [-0xfffffffen, -1n, 0n],
+ [-0x80000001n, -1n, 0n],
+ [-0x80000000n, -1n, 0n],
+ [-0x7fffffffn, -1n, 0n],
+ [-0x7ffffffen, -1n, 0n],
+ [-2n, -1n, 0n],
+ [-1n, -1n, 0n],
+ [0n, -1n, 0n],
+ [1n, -1n, 0n],
+ [2n, -1n, 0n],
+ [0x7ffffffen, -1n, 0n],
+ [0x7fffffffn, -1n, 0n],
+ [0x80000000n, -1n, 0n],
+ [0x80000001n, -1n, 0n],
+ [0xfffffffen, -1n, 0n],
+ [0xffffffffn, -1n, 0n],
+ [0x100000000n, -1n, 0n],
+ [0x100000001n, -1n, 0n],
+ [0x7ffffffffffffffen, -1n, 0n],
+ [0x7fffffffffffffffn, -1n, 0n],
+ [0x8000000000000000n, -1n, 0n],
+ [0x8000000000000001n, -1n, 0n],
+ [0xfffffffffffffffen, -1n, 0n],
+ [0xffffffffffffffffn, -1n, 0n],
+ [0x10000000000000000n, -1n, 0n],
+ [0x10000000000000001n, -1n, 0n],
+ [-0x10000000000000001n, 1n, 0n],
+ [-0x10000000000000000n, 1n, 0n],
+ [-0xffffffffffffffffn, 1n, 0n],
+ [-0xfffffffffffffffen, 1n, 0n],
+ [-0x8000000000000001n, 1n, 0n],
+ [-0x8000000000000000n, 1n, 0n],
+ [-0x7fffffffffffffffn, 1n, 0n],
+ [-0x7ffffffffffffffen, 1n, 0n],
+ [-0x100000001n, 1n, 0n],
+ [-0x100000000n, 1n, 0n],
+ [-0xffffffffn, 1n, 0n],
+ [-0xfffffffen, 1n, 0n],
+ [-0x80000001n, 1n, 0n],
+ [-0x80000000n, 1n, 0n],
+ [-0x7fffffffn, 1n, 0n],
+ [-0x7ffffffen, 1n, 0n],
+ [-2n, 1n, 0n],
+ [-1n, 1n, 0n],
+ [0n, 1n, 0n],
+ [1n, 1n, 0n],
+ [2n, 1n, 0n],
+ [0x7ffffffen, 1n, 0n],
+ [0x7fffffffn, 1n, 0n],
+ [0x80000000n, 1n, 0n],
+ [0x80000001n, 1n, 0n],
+ [0xfffffffen, 1n, 0n],
+ [0xffffffffn, 1n, 0n],
+ [0x100000000n, 1n, 0n],
+ [0x100000001n, 1n, 0n],
+ [0x7ffffffffffffffen, 1n, 0n],
+ [0x7fffffffffffffffn, 1n, 0n],
+ [0x8000000000000000n, 1n, 0n],
+ [0x8000000000000001n, 1n, 0n],
+ [0xfffffffffffffffen, 1n, 0n],
+ [0xffffffffffffffffn, 1n, 0n],
+ [0x10000000000000000n, 1n, 0n],
+ [0x10000000000000001n, 1n, 0n],
+ [-0x10000000000000001n, 2n, -1n],
+ [-0x10000000000000000n, 2n, 0n],
+ [-0xffffffffffffffffn, 2n, -1n],
+ [-0xfffffffffffffffen, 2n, 0n],
+ [-0x8000000000000001n, 2n, -1n],
+ [-0x8000000000000000n, 2n, 0n],
+ [-0x7fffffffffffffffn, 2n, -1n],
+ [-0x7ffffffffffffffen, 2n, 0n],
+ [-0x100000001n, 2n, -1n],
+ [-0x100000000n, 2n, 0n],
+ [-0xffffffffn, 2n, -1n],
+ [-0xfffffffen, 2n, 0n],
+ [-0x80000001n, 2n, -1n],
+ [-0x80000000n, 2n, 0n],
+ [-0x7fffffffn, 2n, -1n],
+ [-0x7ffffffen, 2n, 0n],
+ [-2n, 2n, 0n],
+ [-1n, 2n, -1n],
+ [0n, 2n, 0n],
+ [1n, 2n, 1n],
+ [2n, 2n, 0n],
+ [0x7ffffffen, 2n, 0n],
+ [0x7fffffffn, 2n, 1n],
+ [0x80000000n, 2n, 0n],
+ [0x80000001n, 2n, 1n],
+ [0xfffffffen, 2n, 0n],
+ [0xffffffffn, 2n, 1n],
+ [0x100000000n, 2n, 0n],
+ [0x100000001n, 2n, 1n],
+ [0x7ffffffffffffffen, 2n, 0n],
+ [0x7fffffffffffffffn, 2n, 1n],
+ [0x8000000000000000n, 2n, 0n],
+ [0x8000000000000001n, 2n, 1n],
+ [0xfffffffffffffffen, 2n, 0n],
+ [0xffffffffffffffffn, 2n, 1n],
+ [0x10000000000000000n, 2n, 0n],
+ [0x10000000000000001n, 2n, 1n],
+ [-0x10000000000000001n, 0x7ffffffen, -17n],
+ [-0x10000000000000000n, 0x7ffffffen, -16n],
+ [-0xffffffffffffffffn, 0x7ffffffen, -15n],
+ [-0xfffffffffffffffen, 0x7ffffffen, -14n],
+ [-0x8000000000000001n, 0x7ffffffen, -9n],
+ [-0x8000000000000000n, 0x7ffffffen, -8n],
+ [-0x7fffffffffffffffn, 0x7ffffffen, -7n],
+ [-0x7ffffffffffffffen, 0x7ffffffen, -6n],
+ [-0x100000001n, 0x7ffffffen, -5n],
+ [-0x100000000n, 0x7ffffffen, -4n],
+ [-0xffffffffn, 0x7ffffffen, -3n],
+ [-0xfffffffen, 0x7ffffffen, -2n],
+ [-0x80000001n, 0x7ffffffen, -3n],
+ [-0x80000000n, 0x7ffffffen, -2n],
+ [-0x7fffffffn, 0x7ffffffen, -1n],
+ [-0x7ffffffen, 0x7ffffffen, 0n],
+ [-2n, 0x7ffffffen, -2n],
+ [-1n, 0x7ffffffen, -1n],
+ [0n, 0x7ffffffen, 0n],
+ [1n, 0x7ffffffen, 1n],
+ [2n, 0x7ffffffen, 2n],
+ [0x7ffffffen, 0x7ffffffen, 0n],
+ [0x7fffffffn, 0x7ffffffen, 1n],
+ [0x80000000n, 0x7ffffffen, 2n],
+ [0x80000001n, 0x7ffffffen, 3n],
+ [0xfffffffen, 0x7ffffffen, 2n],
+ [0xffffffffn, 0x7ffffffen, 3n],
+ [0x100000000n, 0x7ffffffen, 4n],
+ [0x100000001n, 0x7ffffffen, 5n],
+ [0x7ffffffffffffffen, 0x7ffffffen, 6n],
+ [0x7fffffffffffffffn, 0x7ffffffen, 7n],
+ [0x8000000000000000n, 0x7ffffffen, 8n],
+ [0x8000000000000001n, 0x7ffffffen, 9n],
+ [0xfffffffffffffffen, 0x7ffffffen, 14n],
+ [0xffffffffffffffffn, 0x7ffffffen, 15n],
+ [0x10000000000000000n, 0x7ffffffen, 16n],
+ [0x10000000000000001n, 0x7ffffffen, 17n],
+ [-0x10000000000000001n, 0x7fffffffn, -5n],
+ [-0x10000000000000000n, 0x7fffffffn, -4n],
+ [-0xffffffffffffffffn, 0x7fffffffn, -3n],
+ [-0xfffffffffffffffen, 0x7fffffffn, -2n],
+ [-0x8000000000000001n, 0x7fffffffn, -3n],
+ [-0x8000000000000000n, 0x7fffffffn, -2n],
+ [-0x7fffffffffffffffn, 0x7fffffffn, -1n],
+ [-0x7ffffffffffffffen, 0x7fffffffn, 0n],
+ [-0x100000001n, 0x7fffffffn, -3n],
+ [-0x100000000n, 0x7fffffffn, -2n],
+ [-0xffffffffn, 0x7fffffffn, -1n],
+ [-0xfffffffen, 0x7fffffffn, 0n],
+ [-0x80000001n, 0x7fffffffn, -2n],
+ [-0x80000000n, 0x7fffffffn, -1n],
+ [-0x7fffffffn, 0x7fffffffn, 0n],
+ [-0x7ffffffen, 0x7fffffffn, -0x7ffffffen],
+ [-2n, 0x7fffffffn, -2n],
+ [-1n, 0x7fffffffn, -1n],
+ [0n, 0x7fffffffn, 0n],
+ [1n, 0x7fffffffn, 1n],
+ [2n, 0x7fffffffn, 2n],
+ [0x7ffffffen, 0x7fffffffn, 0x7ffffffen],
+ [0x7fffffffn, 0x7fffffffn, 0n],
+ [0x80000000n, 0x7fffffffn, 1n],
+ [0x80000001n, 0x7fffffffn, 2n],
+ [0xfffffffen, 0x7fffffffn, 0n],
+ [0xffffffffn, 0x7fffffffn, 1n],
+ [0x100000000n, 0x7fffffffn, 2n],
+ [0x100000001n, 0x7fffffffn, 3n],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0n],
+ [0x7fffffffffffffffn, 0x7fffffffn, 1n],
+ [0x8000000000000000n, 0x7fffffffn, 2n],
+ [0x8000000000000001n, 0x7fffffffn, 3n],
+ [0xfffffffffffffffen, 0x7fffffffn, 2n],
+ [0xffffffffffffffffn, 0x7fffffffn, 3n],
+ [0x10000000000000000n, 0x7fffffffn, 4n],
+ [0x10000000000000001n, 0x7fffffffn, 5n],
+ [-0x10000000000000001n, 0x80000000n, -1n],
+ [-0x10000000000000000n, 0x80000000n, 0n],
+ [-0xffffffffffffffffn, 0x80000000n, -0x7fffffffn],
+ [-0xfffffffffffffffen, 0x80000000n, -0x7ffffffen],
+ [-0x8000000000000001n, 0x80000000n, -1n],
+ [-0x8000000000000000n, 0x80000000n, 0n],
+ [-0x7fffffffffffffffn, 0x80000000n, -0x7fffffffn],
+ [-0x7ffffffffffffffen, 0x80000000n, -0x7ffffffen],
+ [-0x100000001n, 0x80000000n, -1n],
+ [-0x100000000n, 0x80000000n, 0n],
+ [-0xffffffffn, 0x80000000n, -0x7fffffffn],
+ [-0xfffffffen, 0x80000000n, -0x7ffffffen],
+ [-0x80000001n, 0x80000000n, -1n],
+ [-0x80000000n, 0x80000000n, 0n],
+ [-0x7fffffffn, 0x80000000n, -0x7fffffffn],
+ [-0x7ffffffen, 0x80000000n, -0x7ffffffen],
+ [-2n, 0x80000000n, -2n],
+ [-1n, 0x80000000n, -1n],
+ [0n, 0x80000000n, 0n],
+ [1n, 0x80000000n, 1n],
+ [2n, 0x80000000n, 2n],
+ [0x7ffffffen, 0x80000000n, 0x7ffffffen],
+ [0x7fffffffn, 0x80000000n, 0x7fffffffn],
+ [0x80000000n, 0x80000000n, 0n],
+ [0x80000001n, 0x80000000n, 1n],
+ [0xfffffffen, 0x80000000n, 0x7ffffffen],
+ [0xffffffffn, 0x80000000n, 0x7fffffffn],
+ [0x100000000n, 0x80000000n, 0n],
+ [0x100000001n, 0x80000000n, 1n],
+ [0x7ffffffffffffffen, 0x80000000n, 0x7ffffffen],
+ [0x7fffffffffffffffn, 0x80000000n, 0x7fffffffn],
+ [0x8000000000000000n, 0x80000000n, 0n],
+ [0x8000000000000001n, 0x80000000n, 1n],
+ [0xfffffffffffffffen, 0x80000000n, 0x7ffffffen],
+ [0xffffffffffffffffn, 0x80000000n, 0x7fffffffn],
+ [0x10000000000000000n, 0x80000000n, 0n],
+ [0x10000000000000001n, 0x80000000n, 1n],
+ [-0x10000000000000001n, 0x80000001n, -5n],
+ [-0x10000000000000000n, 0x80000001n, -4n],
+ [-0xffffffffffffffffn, 0x80000001n, -3n],
+ [-0xfffffffffffffffen, 0x80000001n, -2n],
+ [-0x8000000000000001n, 0x80000001n, -3n],
+ [-0x8000000000000000n, 0x80000001n, -2n],
+ [-0x7fffffffffffffffn, 0x80000001n, -1n],
+ [-0x7ffffffffffffffen, 0x80000001n, 0n],
+ [-0x100000001n, 0x80000001n, -0x80000000n],
+ [-0x100000000n, 0x80000001n, -0x7fffffffn],
+ [-0xffffffffn, 0x80000001n, -0x7ffffffen],
+ [-0xfffffffen, 0x80000001n, -0x7ffffffdn],
+ [-0x80000001n, 0x80000001n, 0n],
+ [-0x80000000n, 0x80000001n, -0x80000000n],
+ [-0x7fffffffn, 0x80000001n, -0x7fffffffn],
+ [-0x7ffffffen, 0x80000001n, -0x7ffffffen],
+ [-2n, 0x80000001n, -2n],
+ [-1n, 0x80000001n, -1n],
+ [0n, 0x80000001n, 0n],
+ [1n, 0x80000001n, 1n],
+ [2n, 0x80000001n, 2n],
+ [0x7ffffffen, 0x80000001n, 0x7ffffffen],
+ [0x7fffffffn, 0x80000001n, 0x7fffffffn],
+ [0x80000000n, 0x80000001n, 0x80000000n],
+ [0x80000001n, 0x80000001n, 0n],
+ [0xfffffffen, 0x80000001n, 0x7ffffffdn],
+ [0xffffffffn, 0x80000001n, 0x7ffffffen],
+ [0x100000000n, 0x80000001n, 0x7fffffffn],
+ [0x100000001n, 0x80000001n, 0x80000000n],
+ [0x7ffffffffffffffen, 0x80000001n, 0n],
+ [0x7fffffffffffffffn, 0x80000001n, 1n],
+ [0x8000000000000000n, 0x80000001n, 2n],
+ [0x8000000000000001n, 0x80000001n, 3n],
+ [0xfffffffffffffffen, 0x80000001n, 2n],
+ [0xffffffffffffffffn, 0x80000001n, 3n],
+ [0x10000000000000000n, 0x80000001n, 4n],
+ [0x10000000000000001n, 0x80000001n, 5n],
+ [-0x10000000000000001n, -0x80000001n, -5n],
+ [-0x10000000000000000n, -0x80000001n, -4n],
+ [-0xffffffffffffffffn, -0x80000001n, -3n],
+ [-0xfffffffffffffffen, -0x80000001n, -2n],
+ [-0x8000000000000001n, -0x80000001n, -3n],
+ [-0x8000000000000000n, -0x80000001n, -2n],
+ [-0x7fffffffffffffffn, -0x80000001n, -1n],
+ [-0x7ffffffffffffffen, -0x80000001n, 0n],
+ [-0x100000001n, -0x80000001n, -0x80000000n],
+ [-0x100000000n, -0x80000001n, -0x7fffffffn],
+ [-0xffffffffn, -0x80000001n, -0x7ffffffen],
+ [-0xfffffffen, -0x80000001n, -0x7ffffffdn],
+ [-0x80000001n, -0x80000001n, 0n],
+ [-0x80000000n, -0x80000001n, -0x80000000n],
+ [-0x7fffffffn, -0x80000001n, -0x7fffffffn],
+ [-0x7ffffffen, -0x80000001n, -0x7ffffffen],
+ [-2n, -0x80000001n, -2n],
+ [-1n, -0x80000001n, -1n],
+ [0n, -0x80000001n, 0n],
+ [1n, -0x80000001n, 1n],
+ [2n, -0x80000001n, 2n],
+ [0x7ffffffen, -0x80000001n, 0x7ffffffen],
+ [0x7fffffffn, -0x80000001n, 0x7fffffffn],
+ [0x80000000n, -0x80000001n, 0x80000000n],
+ [0x80000001n, -0x80000001n, 0n],
+ [0xfffffffen, -0x80000001n, 0x7ffffffdn],
+ [0xffffffffn, -0x80000001n, 0x7ffffffen],
+ [0x100000000n, -0x80000001n, 0x7fffffffn],
+ [0x100000001n, -0x80000001n, 0x80000000n],
+ [0x7ffffffffffffffen, -0x80000001n, 0n],
+ [0x7fffffffffffffffn, -0x80000001n, 1n],
+ [0x8000000000000000n, -0x80000001n, 2n],
+ [0x8000000000000001n, -0x80000001n, 3n],
+ [0xfffffffffffffffen, -0x80000001n, 2n],
+ [0xffffffffffffffffn, -0x80000001n, 3n],
+ [0x10000000000000000n, -0x80000001n, 4n],
+ [0x10000000000000001n, -0x80000001n, 5n],
+ [-0x10000000000000001n, -0x80000000n, -1n],
+ [-0x10000000000000000n, -0x80000000n, 0n],
+ [-0xffffffffffffffffn, -0x80000000n, -0x7fffffffn],
+ [-0xfffffffffffffffen, -0x80000000n, -0x7ffffffen],
+ [-0x8000000000000001n, -0x80000000n, -1n],
+ [-0x8000000000000000n, -0x80000000n, 0n],
+ [-0x7fffffffffffffffn, -0x80000000n, -0x7fffffffn],
+ [-0x7ffffffffffffffen, -0x80000000n, -0x7ffffffen],
+ [-0x100000001n, -0x80000000n, -1n],
+ [-0x100000000n, -0x80000000n, 0n],
+ [-0xffffffffn, -0x80000000n, -0x7fffffffn],
+ [-0xfffffffen, -0x80000000n, -0x7ffffffen],
+ [-0x80000001n, -0x80000000n, -1n],
+ [-0x80000000n, -0x80000000n, 0n],
+ [-0x7fffffffn, -0x80000000n, -0x7fffffffn],
+ [-0x7ffffffen, -0x80000000n, -0x7ffffffen],
+ [-2n, -0x80000000n, -2n],
+ [-1n, -0x80000000n, -1n],
+ [0n, -0x80000000n, 0n],
+ [1n, -0x80000000n, 1n],
+ [2n, -0x80000000n, 2n],
+ [0x7ffffffen, -0x80000000n, 0x7ffffffen],
+ [0x7fffffffn, -0x80000000n, 0x7fffffffn],
+ [0x80000000n, -0x80000000n, 0n],
+ [0x80000001n, -0x80000000n, 1n],
+ [0xfffffffen, -0x80000000n, 0x7ffffffen],
+ [0xffffffffn, -0x80000000n, 0x7fffffffn],
+ [0x100000000n, -0x80000000n, 0n],
+ [0x100000001n, -0x80000000n, 1n],
+ [0x7ffffffffffffffen, -0x80000000n, 0x7ffffffen],
+ [0x7fffffffffffffffn, -0x80000000n, 0x7fffffffn],
+ [0x8000000000000000n, -0x80000000n, 0n],
+ [0x8000000000000001n, -0x80000000n, 1n],
+ [0xfffffffffffffffen, -0x80000000n, 0x7ffffffen],
+ [0xffffffffffffffffn, -0x80000000n, 0x7fffffffn],
+ [0x10000000000000000n, -0x80000000n, 0n],
+ [0x10000000000000001n, -0x80000000n, 1n],
+ [-0x10000000000000001n, -0x7fffffffn, -5n],
+ [-0x10000000000000000n, -0x7fffffffn, -4n],
+ [-0xffffffffffffffffn, -0x7fffffffn, -3n],
+ [-0xfffffffffffffffen, -0x7fffffffn, -2n],
+ [-0x8000000000000001n, -0x7fffffffn, -3n],
+ [-0x8000000000000000n, -0x7fffffffn, -2n],
+ [-0x7fffffffffffffffn, -0x7fffffffn, -1n],
+ [-0x7ffffffffffffffen, -0x7fffffffn, 0n],
+ [-0x100000001n, -0x7fffffffn, -3n],
+ [-0x100000000n, -0x7fffffffn, -2n],
+ [-0xffffffffn, -0x7fffffffn, -1n],
+ [-0xfffffffen, -0x7fffffffn, 0n],
+ [-0x80000001n, -0x7fffffffn, -2n],
+ [-0x80000000n, -0x7fffffffn, -1n],
+ [-0x7fffffffn, -0x7fffffffn, 0n],
+ [-0x7ffffffen, -0x7fffffffn, -0x7ffffffen],
+ [-2n, -0x7fffffffn, -2n],
+ [-1n, -0x7fffffffn, -1n],
+ [0n, -0x7fffffffn, 0n],
+ [1n, -0x7fffffffn, 1n],
+ [2n, -0x7fffffffn, 2n],
+ [0x7ffffffen, -0x7fffffffn, 0x7ffffffen],
+ [0x7fffffffn, -0x7fffffffn, 0n],
+ [0x80000000n, -0x7fffffffn, 1n],
+ [0x80000001n, -0x7fffffffn, 2n],
+ [0xfffffffen, -0x7fffffffn, 0n],
+ [0xffffffffn, -0x7fffffffn, 1n],
+ [0x100000000n, -0x7fffffffn, 2n],
+ [0x100000001n, -0x7fffffffn, 3n],
+ [0x7ffffffffffffffen, -0x7fffffffn, 0n],
+ [0x7fffffffffffffffn, -0x7fffffffn, 1n],
+ [0x8000000000000000n, -0x7fffffffn, 2n],
+ [0x8000000000000001n, -0x7fffffffn, 3n],
+ [0xfffffffffffffffen, -0x7fffffffn, 2n],
+ [0xffffffffffffffffn, -0x7fffffffn, 3n],
+ [0x10000000000000000n, -0x7fffffffn, 4n],
+ [0x10000000000000001n, -0x7fffffffn, 5n],
+ [-0x10000000000000001n, -0x7ffffffen, -17n],
+ [-0x10000000000000000n, -0x7ffffffen, -16n],
+ [-0xffffffffffffffffn, -0x7ffffffen, -15n],
+ [-0xfffffffffffffffen, -0x7ffffffen, -14n],
+ [-0x8000000000000001n, -0x7ffffffen, -9n],
+ [-0x8000000000000000n, -0x7ffffffen, -8n],
+ [-0x7fffffffffffffffn, -0x7ffffffen, -7n],
+ [-0x7ffffffffffffffen, -0x7ffffffen, -6n],
+ [-0x100000001n, -0x7ffffffen, -5n],
+ [-0x100000000n, -0x7ffffffen, -4n],
+ [-0xffffffffn, -0x7ffffffen, -3n],
+ [-0xfffffffen, -0x7ffffffen, -2n],
+ [-0x80000001n, -0x7ffffffen, -3n],
+ [-0x80000000n, -0x7ffffffen, -2n],
+ [-0x7fffffffn, -0x7ffffffen, -1n],
+ [-0x7ffffffen, -0x7ffffffen, 0n],
+ [-2n, -0x7ffffffen, -2n],
+ [-1n, -0x7ffffffen, -1n],
+ [0n, -0x7ffffffen, 0n],
+ [1n, -0x7ffffffen, 1n],
+ [2n, -0x7ffffffen, 2n],
+ [0x7ffffffen, -0x7ffffffen, 0n],
+ [0x7fffffffn, -0x7ffffffen, 1n],
+ [0x80000000n, -0x7ffffffen, 2n],
+ [0x80000001n, -0x7ffffffen, 3n],
+ [0xfffffffen, -0x7ffffffen, 2n],
+ [0xffffffffn, -0x7ffffffen, 3n],
+ [0x100000000n, -0x7ffffffen, 4n],
+ [0x100000001n, -0x7ffffffen, 5n],
+ [0x7ffffffffffffffen, -0x7ffffffen, 6n],
+ [0x7fffffffffffffffn, -0x7ffffffen, 7n],
+ [0x8000000000000000n, -0x7ffffffen, 8n],
+ [0x8000000000000001n, -0x7ffffffen, 9n],
+ [0xfffffffffffffffen, -0x7ffffffen, 14n],
+ [0xffffffffffffffffn, -0x7ffffffen, 15n],
+ [0x10000000000000000n, -0x7ffffffen, 16n],
+ [0x10000000000000001n, -0x7ffffffen, 17n],
+ [-0x10000000000000001n, 0xfffffffen, -5n],
+ [-0x10000000000000000n, 0xfffffffen, -4n],
+ [-0xffffffffffffffffn, 0xfffffffen, -3n],
+ [-0xfffffffffffffffen, 0xfffffffen, -2n],
+ [-0x8000000000000001n, 0xfffffffen, -3n],
+ [-0x8000000000000000n, 0xfffffffen, -2n],
+ [-0x7fffffffffffffffn, 0xfffffffen, -1n],
+ [-0x7ffffffffffffffen, 0xfffffffen, 0n],
+ [-0x100000001n, 0xfffffffen, -3n],
+ [-0x100000000n, 0xfffffffen, -2n],
+ [-0xffffffffn, 0xfffffffen, -1n],
+ [-0xfffffffen, 0xfffffffen, 0n],
+ [-0x80000001n, 0xfffffffen, -0x80000001n],
+ [-0x80000000n, 0xfffffffen, -0x80000000n],
+ [-0x7fffffffn, 0xfffffffen, -0x7fffffffn],
+ [-0x7ffffffen, 0xfffffffen, -0x7ffffffen],
+ [-2n, 0xfffffffen, -2n],
+ [-1n, 0xfffffffen, -1n],
+ [0n, 0xfffffffen, 0n],
+ [1n, 0xfffffffen, 1n],
+ [2n, 0xfffffffen, 2n],
+ [0x7ffffffen, 0xfffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0xfffffffen, 0x7fffffffn],
+ [0x80000000n, 0xfffffffen, 0x80000000n],
+ [0x80000001n, 0xfffffffen, 0x80000001n],
+ [0xfffffffen, 0xfffffffen, 0n],
+ [0xffffffffn, 0xfffffffen, 1n],
+ [0x100000000n, 0xfffffffen, 2n],
+ [0x100000001n, 0xfffffffen, 3n],
+ [0x7ffffffffffffffen, 0xfffffffen, 0n],
+ [0x7fffffffffffffffn, 0xfffffffen, 1n],
+ [0x8000000000000000n, 0xfffffffen, 2n],
+ [0x8000000000000001n, 0xfffffffen, 3n],
+ [0xfffffffffffffffen, 0xfffffffen, 2n],
+ [0xffffffffffffffffn, 0xfffffffen, 3n],
+ [0x10000000000000000n, 0xfffffffen, 4n],
+ [0x10000000000000001n, 0xfffffffen, 5n],
+ [-0x10000000000000001n, 0xffffffffn, -2n],
+ [-0x10000000000000000n, 0xffffffffn, -1n],
+ [-0xffffffffffffffffn, 0xffffffffn, 0n],
+ [-0xfffffffffffffffen, 0xffffffffn, -0xfffffffen],
+ [-0x8000000000000001n, 0xffffffffn, -0x80000001n],
+ [-0x8000000000000000n, 0xffffffffn, -0x80000000n],
+ [-0x7fffffffffffffffn, 0xffffffffn, -0x7fffffffn],
+ [-0x7ffffffffffffffen, 0xffffffffn, -0x7ffffffen],
+ [-0x100000001n, 0xffffffffn, -2n],
+ [-0x100000000n, 0xffffffffn, -1n],
+ [-0xffffffffn, 0xffffffffn, 0n],
+ [-0xfffffffen, 0xffffffffn, -0xfffffffen],
+ [-0x80000001n, 0xffffffffn, -0x80000001n],
+ [-0x80000000n, 0xffffffffn, -0x80000000n],
+ [-0x7fffffffn, 0xffffffffn, -0x7fffffffn],
+ [-0x7ffffffen, 0xffffffffn, -0x7ffffffen],
+ [-2n, 0xffffffffn, -2n],
+ [-1n, 0xffffffffn, -1n],
+ [0n, 0xffffffffn, 0n],
+ [1n, 0xffffffffn, 1n],
+ [2n, 0xffffffffn, 2n],
+ [0x7ffffffen, 0xffffffffn, 0x7ffffffen],
+ [0x7fffffffn, 0xffffffffn, 0x7fffffffn],
+ [0x80000000n, 0xffffffffn, 0x80000000n],
+ [0x80000001n, 0xffffffffn, 0x80000001n],
+ [0xfffffffen, 0xffffffffn, 0xfffffffen],
+ [0xffffffffn, 0xffffffffn, 0n],
+ [0x100000000n, 0xffffffffn, 1n],
+ [0x100000001n, 0xffffffffn, 2n],
+ [0x7ffffffffffffffen, 0xffffffffn, 0x7ffffffen],
+ [0x7fffffffffffffffn, 0xffffffffn, 0x7fffffffn],
+ [0x8000000000000000n, 0xffffffffn, 0x80000000n],
+ [0x8000000000000001n, 0xffffffffn, 0x80000001n],
+ [0xfffffffffffffffen, 0xffffffffn, 0xfffffffen],
+ [0xffffffffffffffffn, 0xffffffffn, 0n],
+ [0x10000000000000000n, 0xffffffffn, 1n],
+ [0x10000000000000001n, 0xffffffffn, 2n],
+ [-0x10000000000000001n, 0x100000000n, -1n],
+ [-0x10000000000000000n, 0x100000000n, 0n],
+ [-0xffffffffffffffffn, 0x100000000n, -0xffffffffn],
+ [-0xfffffffffffffffen, 0x100000000n, -0xfffffffen],
+ [-0x8000000000000001n, 0x100000000n, -1n],
+ [-0x8000000000000000n, 0x100000000n, 0n],
+ [-0x7fffffffffffffffn, 0x100000000n, -0xffffffffn],
+ [-0x7ffffffffffffffen, 0x100000000n, -0xfffffffen],
+ [-0x100000001n, 0x100000000n, -1n],
+ [-0x100000000n, 0x100000000n, 0n],
+ [-0xffffffffn, 0x100000000n, -0xffffffffn],
+ [-0xfffffffen, 0x100000000n, -0xfffffffen],
+ [-0x80000001n, 0x100000000n, -0x80000001n],
+ [-0x80000000n, 0x100000000n, -0x80000000n],
+ [-0x7fffffffn, 0x100000000n, -0x7fffffffn],
+ [-0x7ffffffen, 0x100000000n, -0x7ffffffen],
+ [-2n, 0x100000000n, -2n],
+ [-1n, 0x100000000n, -1n],
+ [0n, 0x100000000n, 0n],
+ [1n, 0x100000000n, 1n],
+ [2n, 0x100000000n, 2n],
+ [0x7ffffffen, 0x100000000n, 0x7ffffffen],
+ [0x7fffffffn, 0x100000000n, 0x7fffffffn],
+ [0x80000000n, 0x100000000n, 0x80000000n],
+ [0x80000001n, 0x100000000n, 0x80000001n],
+ [0xfffffffen, 0x100000000n, 0xfffffffen],
+ [0xffffffffn, 0x100000000n, 0xffffffffn],
+ [0x100000000n, 0x100000000n, 0n],
+ [0x100000001n, 0x100000000n, 1n],
+ [0x7ffffffffffffffen, 0x100000000n, 0xfffffffen],
+ [0x7fffffffffffffffn, 0x100000000n, 0xffffffffn],
+ [0x8000000000000000n, 0x100000000n, 0n],
+ [0x8000000000000001n, 0x100000000n, 1n],
+ [0xfffffffffffffffen, 0x100000000n, 0xfffffffen],
+ [0xffffffffffffffffn, 0x100000000n, 0xffffffffn],
+ [0x10000000000000000n, 0x100000000n, 0n],
+ [0x10000000000000001n, 0x100000000n, 1n],
+ [-0x10000000000000001n, 0x100000001n, -2n],
+ [-0x10000000000000000n, 0x100000001n, -1n],
+ [-0xffffffffffffffffn, 0x100000001n, 0n],
+ [-0xfffffffffffffffen, 0x100000001n, -0x100000000n],
+ [-0x8000000000000001n, 0x100000001n, -0x80000002n],
+ [-0x8000000000000000n, 0x100000001n, -0x80000001n],
+ [-0x7fffffffffffffffn, 0x100000001n, -0x80000000n],
+ [-0x7ffffffffffffffen, 0x100000001n, -0x7fffffffn],
+ [-0x100000001n, 0x100000001n, 0n],
+ [-0x100000000n, 0x100000001n, -0x100000000n],
+ [-0xffffffffn, 0x100000001n, -0xffffffffn],
+ [-0xfffffffen, 0x100000001n, -0xfffffffen],
+ [-0x80000001n, 0x100000001n, -0x80000001n],
+ [-0x80000000n, 0x100000001n, -0x80000000n],
+ [-0x7fffffffn, 0x100000001n, -0x7fffffffn],
+ [-0x7ffffffen, 0x100000001n, -0x7ffffffen],
+ [-2n, 0x100000001n, -2n],
+ [-1n, 0x100000001n, -1n],
+ [0n, 0x100000001n, 0n],
+ [1n, 0x100000001n, 1n],
+ [2n, 0x100000001n, 2n],
+ [0x7ffffffen, 0x100000001n, 0x7ffffffen],
+ [0x7fffffffn, 0x100000001n, 0x7fffffffn],
+ [0x80000000n, 0x100000001n, 0x80000000n],
+ [0x80000001n, 0x100000001n, 0x80000001n],
+ [0xfffffffen, 0x100000001n, 0xfffffffen],
+ [0xffffffffn, 0x100000001n, 0xffffffffn],
+ [0x100000000n, 0x100000001n, 0x100000000n],
+ [0x100000001n, 0x100000001n, 0n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x7fffffffn],
+ [0x7fffffffffffffffn, 0x100000001n, 0x80000000n],
+ [0x8000000000000000n, 0x100000001n, 0x80000001n],
+ [0x8000000000000001n, 0x100000001n, 0x80000002n],
+ [0xfffffffffffffffen, 0x100000001n, 0x100000000n],
+ [0xffffffffffffffffn, 0x100000001n, 0n],
+ [0x10000000000000000n, 0x100000001n, 1n],
+ [0x10000000000000001n, 0x100000001n, 2n],
+ [-0x10000000000000001n, -0x100000001n, -2n],
+ [-0x10000000000000000n, -0x100000001n, -1n],
+ [-0xffffffffffffffffn, -0x100000001n, 0n],
+ [-0xfffffffffffffffen, -0x100000001n, -0x100000000n],
+ [-0x8000000000000001n, -0x100000001n, -0x80000002n],
+ [-0x8000000000000000n, -0x100000001n, -0x80000001n],
+ [-0x7fffffffffffffffn, -0x100000001n, -0x80000000n],
+ [-0x7ffffffffffffffen, -0x100000001n, -0x7fffffffn],
+ [-0x100000001n, -0x100000001n, 0n],
+ [-0x100000000n, -0x100000001n, -0x100000000n],
+ [-0xffffffffn, -0x100000001n, -0xffffffffn],
+ [-0xfffffffen, -0x100000001n, -0xfffffffen],
+ [-0x80000001n, -0x100000001n, -0x80000001n],
+ [-0x80000000n, -0x100000001n, -0x80000000n],
+ [-0x7fffffffn, -0x100000001n, -0x7fffffffn],
+ [-0x7ffffffen, -0x100000001n, -0x7ffffffen],
+ [-2n, -0x100000001n, -2n],
+ [-1n, -0x100000001n, -1n],
+ [0n, -0x100000001n, 0n],
+ [1n, -0x100000001n, 1n],
+ [2n, -0x100000001n, 2n],
+ [0x7ffffffen, -0x100000001n, 0x7ffffffen],
+ [0x7fffffffn, -0x100000001n, 0x7fffffffn],
+ [0x80000000n, -0x100000001n, 0x80000000n],
+ [0x80000001n, -0x100000001n, 0x80000001n],
+ [0xfffffffen, -0x100000001n, 0xfffffffen],
+ [0xffffffffn, -0x100000001n, 0xffffffffn],
+ [0x100000000n, -0x100000001n, 0x100000000n],
+ [0x100000001n, -0x100000001n, 0n],
+ [0x7ffffffffffffffen, -0x100000001n, 0x7fffffffn],
+ [0x7fffffffffffffffn, -0x100000001n, 0x80000000n],
+ [0x8000000000000000n, -0x100000001n, 0x80000001n],
+ [0x8000000000000001n, -0x100000001n, 0x80000002n],
+ [0xfffffffffffffffen, -0x100000001n, 0x100000000n],
+ [0xffffffffffffffffn, -0x100000001n, 0n],
+ [0x10000000000000000n, -0x100000001n, 1n],
+ [0x10000000000000001n, -0x100000001n, 2n],
+ [-0x10000000000000001n, -0x100000000n, -1n],
+ [-0x10000000000000000n, -0x100000000n, 0n],
+ [-0xffffffffffffffffn, -0x100000000n, -0xffffffffn],
+ [-0xfffffffffffffffen, -0x100000000n, -0xfffffffen],
+ [-0x8000000000000001n, -0x100000000n, -1n],
+ [-0x8000000000000000n, -0x100000000n, 0n],
+ [-0x7fffffffffffffffn, -0x100000000n, -0xffffffffn],
+ [-0x7ffffffffffffffen, -0x100000000n, -0xfffffffen],
+ [-0x100000001n, -0x100000000n, -1n],
+ [-0x100000000n, -0x100000000n, 0n],
+ [-0xffffffffn, -0x100000000n, -0xffffffffn],
+ [-0xfffffffen, -0x100000000n, -0xfffffffen],
+ [-0x80000001n, -0x100000000n, -0x80000001n],
+ [-0x80000000n, -0x100000000n, -0x80000000n],
+ [-0x7fffffffn, -0x100000000n, -0x7fffffffn],
+ [-0x7ffffffen, -0x100000000n, -0x7ffffffen],
+ [-2n, -0x100000000n, -2n],
+ [-1n, -0x100000000n, -1n],
+ [0n, -0x100000000n, 0n],
+ [1n, -0x100000000n, 1n],
+ [2n, -0x100000000n, 2n],
+ [0x7ffffffen, -0x100000000n, 0x7ffffffen],
+ [0x7fffffffn, -0x100000000n, 0x7fffffffn],
+ [0x80000000n, -0x100000000n, 0x80000000n],
+ [0x80000001n, -0x100000000n, 0x80000001n],
+ [0xfffffffen, -0x100000000n, 0xfffffffen],
+ [0xffffffffn, -0x100000000n, 0xffffffffn],
+ [0x100000000n, -0x100000000n, 0n],
+ [0x100000001n, -0x100000000n, 1n],
+ [0x7ffffffffffffffen, -0x100000000n, 0xfffffffen],
+ [0x7fffffffffffffffn, -0x100000000n, 0xffffffffn],
+ [0x8000000000000000n, -0x100000000n, 0n],
+ [0x8000000000000001n, -0x100000000n, 1n],
+ [0xfffffffffffffffen, -0x100000000n, 0xfffffffen],
+ [0xffffffffffffffffn, -0x100000000n, 0xffffffffn],
+ [0x10000000000000000n, -0x100000000n, 0n],
+ [0x10000000000000001n, -0x100000000n, 1n],
+ [-0x10000000000000001n, -0xffffffffn, -2n],
+ [-0x10000000000000000n, -0xffffffffn, -1n],
+ [-0xffffffffffffffffn, -0xffffffffn, 0n],
+ [-0xfffffffffffffffen, -0xffffffffn, -0xfffffffen],
+ [-0x8000000000000001n, -0xffffffffn, -0x80000001n],
+ [-0x8000000000000000n, -0xffffffffn, -0x80000000n],
+ [-0x7fffffffffffffffn, -0xffffffffn, -0x7fffffffn],
+ [-0x7ffffffffffffffen, -0xffffffffn, -0x7ffffffen],
+ [-0x100000001n, -0xffffffffn, -2n],
+ [-0x100000000n, -0xffffffffn, -1n],
+ [-0xffffffffn, -0xffffffffn, 0n],
+ [-0xfffffffen, -0xffffffffn, -0xfffffffen],
+ [-0x80000001n, -0xffffffffn, -0x80000001n],
+ [-0x80000000n, -0xffffffffn, -0x80000000n],
+ [-0x7fffffffn, -0xffffffffn, -0x7fffffffn],
+ [-0x7ffffffen, -0xffffffffn, -0x7ffffffen],
+ [-2n, -0xffffffffn, -2n],
+ [-1n, -0xffffffffn, -1n],
+ [0n, -0xffffffffn, 0n],
+ [1n, -0xffffffffn, 1n],
+ [2n, -0xffffffffn, 2n],
+ [0x7ffffffen, -0xffffffffn, 0x7ffffffen],
+ [0x7fffffffn, -0xffffffffn, 0x7fffffffn],
+ [0x80000000n, -0xffffffffn, 0x80000000n],
+ [0x80000001n, -0xffffffffn, 0x80000001n],
+ [0xfffffffen, -0xffffffffn, 0xfffffffen],
+ [0xffffffffn, -0xffffffffn, 0n],
+ [0x100000000n, -0xffffffffn, 1n],
+ [0x100000001n, -0xffffffffn, 2n],
+ [0x7ffffffffffffffen, -0xffffffffn, 0x7ffffffen],
+ [0x7fffffffffffffffn, -0xffffffffn, 0x7fffffffn],
+ [0x8000000000000000n, -0xffffffffn, 0x80000000n],
+ [0x8000000000000001n, -0xffffffffn, 0x80000001n],
+ [0xfffffffffffffffen, -0xffffffffn, 0xfffffffen],
+ [0xffffffffffffffffn, -0xffffffffn, 0n],
+ [0x10000000000000000n, -0xffffffffn, 1n],
+ [0x10000000000000001n, -0xffffffffn, 2n],
+ [-0x10000000000000001n, -0xfffffffen, -5n],
+ [-0x10000000000000000n, -0xfffffffen, -4n],
+ [-0xffffffffffffffffn, -0xfffffffen, -3n],
+ [-0xfffffffffffffffen, -0xfffffffen, -2n],
+ [-0x8000000000000001n, -0xfffffffen, -3n],
+ [-0x8000000000000000n, -0xfffffffen, -2n],
+ [-0x7fffffffffffffffn, -0xfffffffen, -1n],
+ [-0x7ffffffffffffffen, -0xfffffffen, 0n],
+ [-0x100000001n, -0xfffffffen, -3n],
+ [-0x100000000n, -0xfffffffen, -2n],
+ [-0xffffffffn, -0xfffffffen, -1n],
+ [-0xfffffffen, -0xfffffffen, 0n],
+ [-0x80000001n, -0xfffffffen, -0x80000001n],
+ [-0x80000000n, -0xfffffffen, -0x80000000n],
+ [-0x7fffffffn, -0xfffffffen, -0x7fffffffn],
+ [-0x7ffffffen, -0xfffffffen, -0x7ffffffen],
+ [-2n, -0xfffffffen, -2n],
+ [-1n, -0xfffffffen, -1n],
+ [0n, -0xfffffffen, 0n],
+ [1n, -0xfffffffen, 1n],
+ [2n, -0xfffffffen, 2n],
+ [0x7ffffffen, -0xfffffffen, 0x7ffffffen],
+ [0x7fffffffn, -0xfffffffen, 0x7fffffffn],
+ [0x80000000n, -0xfffffffen, 0x80000000n],
+ [0x80000001n, -0xfffffffen, 0x80000001n],
+ [0xfffffffen, -0xfffffffen, 0n],
+ [0xffffffffn, -0xfffffffen, 1n],
+ [0x100000000n, -0xfffffffen, 2n],
+ [0x100000001n, -0xfffffffen, 3n],
+ [0x7ffffffffffffffen, -0xfffffffen, 0n],
+ [0x7fffffffffffffffn, -0xfffffffen, 1n],
+ [0x8000000000000000n, -0xfffffffen, 2n],
+ [0x8000000000000001n, -0xfffffffen, 3n],
+ [0xfffffffffffffffen, -0xfffffffen, 2n],
+ [0xffffffffffffffffn, -0xfffffffen, 3n],
+ [0x10000000000000000n, -0xfffffffen, 4n],
+ [0x10000000000000001n, -0xfffffffen, 5n],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, -5n],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, -4n],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, -3n],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, -2n],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, -3n],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, -2n],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, -1n],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, 0n],
+ [-0x100000001n, 0x7ffffffffffffffen, -0x100000001n],
+ [-0x100000000n, 0x7ffffffffffffffen, -0x100000000n],
+ [-0xffffffffn, 0x7ffffffffffffffen, -0xffffffffn],
+ [-0xfffffffen, 0x7ffffffffffffffen, -0xfffffffen],
+ [-0x80000001n, 0x7ffffffffffffffen, -0x80000001n],
+ [-0x80000000n, 0x7ffffffffffffffen, -0x80000000n],
+ [-0x7fffffffn, 0x7ffffffffffffffen, -0x7fffffffn],
+ [-0x7ffffffen, 0x7ffffffffffffffen, -0x7ffffffen],
+ [-2n, 0x7ffffffffffffffen, -2n],
+ [-1n, 0x7ffffffffffffffen, -1n],
+ [0n, 0x7ffffffffffffffen, 0n],
+ [1n, 0x7ffffffffffffffen, 1n],
+ [2n, 0x7ffffffffffffffen, 2n],
+ [0x7ffffffen, 0x7ffffffffffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0x7ffffffffffffffen, 0x7fffffffn],
+ [0x80000000n, 0x7ffffffffffffffen, 0x80000000n],
+ [0x80000001n, 0x7ffffffffffffffen, 0x80000001n],
+ [0xfffffffen, 0x7ffffffffffffffen, 0xfffffffen],
+ [0xffffffffn, 0x7ffffffffffffffen, 0xffffffffn],
+ [0x100000000n, 0x7ffffffffffffffen, 0x100000000n],
+ [0x100000001n, 0x7ffffffffffffffen, 0x100000001n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0n],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 1n],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 2n],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 3n],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 2n],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 3n],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 4n],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 5n],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, -3n],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, -2n],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, -1n],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, 0n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, -2n],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, -1n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, 0n],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, -0x7ffffffffffffffen],
+ [-0x100000001n, 0x7fffffffffffffffn, -0x100000001n],
+ [-0x100000000n, 0x7fffffffffffffffn, -0x100000000n],
+ [-0xffffffffn, 0x7fffffffffffffffn, -0xffffffffn],
+ [-0xfffffffen, 0x7fffffffffffffffn, -0xfffffffen],
+ [-0x80000001n, 0x7fffffffffffffffn, -0x80000001n],
+ [-0x80000000n, 0x7fffffffffffffffn, -0x80000000n],
+ [-0x7fffffffn, 0x7fffffffffffffffn, -0x7fffffffn],
+ [-0x7ffffffen, 0x7fffffffffffffffn, -0x7ffffffen],
+ [-2n, 0x7fffffffffffffffn, -2n],
+ [-1n, 0x7fffffffffffffffn, -1n],
+ [0n, 0x7fffffffffffffffn, 0n],
+ [1n, 0x7fffffffffffffffn, 1n],
+ [2n, 0x7fffffffffffffffn, 2n],
+ [0x7ffffffen, 0x7fffffffffffffffn, 0x7ffffffen],
+ [0x7fffffffn, 0x7fffffffffffffffn, 0x7fffffffn],
+ [0x80000000n, 0x7fffffffffffffffn, 0x80000000n],
+ [0x80000001n, 0x7fffffffffffffffn, 0x80000001n],
+ [0xfffffffen, 0x7fffffffffffffffn, 0xfffffffen],
+ [0xffffffffn, 0x7fffffffffffffffn, 0xffffffffn],
+ [0x100000000n, 0x7fffffffffffffffn, 0x100000000n],
+ [0x100000001n, 0x7fffffffffffffffn, 0x100000001n],
+ [0x7ffffffffffffffen, 0x7fffffffffffffffn, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0n],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 1n],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 2n],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 0n],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 1n],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 2n],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 3n],
+ [-0x10000000000000001n, 0x8000000000000000n, -1n],
+ [-0x10000000000000000n, 0x8000000000000000n, 0n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, 0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x8000000000000001n, 0x8000000000000000n, -1n],
+ [-0x8000000000000000n, 0x8000000000000000n, 0n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0x8000000000000000n, -0x100000001n],
+ [-0x100000000n, 0x8000000000000000n, -0x100000000n],
+ [-0xffffffffn, 0x8000000000000000n, -0xffffffffn],
+ [-0xfffffffen, 0x8000000000000000n, -0xfffffffen],
+ [-0x80000001n, 0x8000000000000000n, -0x80000001n],
+ [-0x80000000n, 0x8000000000000000n, -0x80000000n],
+ [-0x7fffffffn, 0x8000000000000000n, -0x7fffffffn],
+ [-0x7ffffffen, 0x8000000000000000n, -0x7ffffffen],
+ [-2n, 0x8000000000000000n, -2n],
+ [-1n, 0x8000000000000000n, -1n],
+ [0n, 0x8000000000000000n, 0n],
+ [1n, 0x8000000000000000n, 1n],
+ [2n, 0x8000000000000000n, 2n],
+ [0x7ffffffen, 0x8000000000000000n, 0x7ffffffen],
+ [0x7fffffffn, 0x8000000000000000n, 0x7fffffffn],
+ [0x80000000n, 0x8000000000000000n, 0x80000000n],
+ [0x80000001n, 0x8000000000000000n, 0x80000001n],
+ [0xfffffffen, 0x8000000000000000n, 0xfffffffen],
+ [0xffffffffn, 0x8000000000000000n, 0xffffffffn],
+ [0x100000000n, 0x8000000000000000n, 0x100000000n],
+ [0x100000001n, 0x8000000000000000n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x8000000000000000n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x8000000000000000n, 0n],
+ [0x8000000000000001n, 0x8000000000000000n, 1n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, 0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, 0x8000000000000000n, 0n],
+ [0x10000000000000001n, 0x8000000000000000n, 1n],
+ [-0x10000000000000001n, 0x8000000000000001n, -0x8000000000000000n],
+ [-0x10000000000000000n, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, 0x8000000000000001n, -0x7ffffffffffffffen],
+ [-0xfffffffffffffffen, 0x8000000000000001n, -0x7ffffffffffffffdn],
+ [-0x8000000000000001n, 0x8000000000000001n, 0n],
+ [-0x8000000000000000n, 0x8000000000000001n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0x8000000000000001n, -0x100000001n],
+ [-0x100000000n, 0x8000000000000001n, -0x100000000n],
+ [-0xffffffffn, 0x8000000000000001n, -0xffffffffn],
+ [-0xfffffffen, 0x8000000000000001n, -0xfffffffen],
+ [-0x80000001n, 0x8000000000000001n, -0x80000001n],
+ [-0x80000000n, 0x8000000000000001n, -0x80000000n],
+ [-0x7fffffffn, 0x8000000000000001n, -0x7fffffffn],
+ [-0x7ffffffen, 0x8000000000000001n, -0x7ffffffen],
+ [-2n, 0x8000000000000001n, -2n],
+ [-1n, 0x8000000000000001n, -1n],
+ [0n, 0x8000000000000001n, 0n],
+ [1n, 0x8000000000000001n, 1n],
+ [2n, 0x8000000000000001n, 2n],
+ [0x7ffffffen, 0x8000000000000001n, 0x7ffffffen],
+ [0x7fffffffn, 0x8000000000000001n, 0x7fffffffn],
+ [0x80000000n, 0x8000000000000001n, 0x80000000n],
+ [0x80000001n, 0x8000000000000001n, 0x80000001n],
+ [0xfffffffen, 0x8000000000000001n, 0xfffffffen],
+ [0xffffffffn, 0x8000000000000001n, 0xffffffffn],
+ [0x100000000n, 0x8000000000000001n, 0x100000000n],
+ [0x100000001n, 0x8000000000000001n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x8000000000000001n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x8000000000000001n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x8000000000000001n, 0x8000000000000000n],
+ [0x8000000000000001n, 0x8000000000000001n, 0n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 0x7ffffffffffffffdn],
+ [0xffffffffffffffffn, 0x8000000000000001n, 0x7ffffffffffffffen],
+ [0x10000000000000000n, 0x8000000000000001n, 0x7fffffffffffffffn],
+ [0x10000000000000001n, 0x8000000000000001n, 0x8000000000000000n],
+ [-0x10000000000000001n, -0x8000000000000001n, -0x8000000000000000n],
+ [-0x10000000000000000n, -0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, -0x8000000000000001n, -0x7ffffffffffffffen],
+ [-0xfffffffffffffffen, -0x8000000000000001n, -0x7ffffffffffffffdn],
+ [-0x8000000000000001n, -0x8000000000000001n, 0n],
+ [-0x8000000000000000n, -0x8000000000000001n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x8000000000000001n, -0x100000001n],
+ [-0x100000000n, -0x8000000000000001n, -0x100000000n],
+ [-0xffffffffn, -0x8000000000000001n, -0xffffffffn],
+ [-0xfffffffen, -0x8000000000000001n, -0xfffffffen],
+ [-0x80000001n, -0x8000000000000001n, -0x80000001n],
+ [-0x80000000n, -0x8000000000000001n, -0x80000000n],
+ [-0x7fffffffn, -0x8000000000000001n, -0x7fffffffn],
+ [-0x7ffffffen, -0x8000000000000001n, -0x7ffffffen],
+ [-2n, -0x8000000000000001n, -2n],
+ [-1n, -0x8000000000000001n, -1n],
+ [0n, -0x8000000000000001n, 0n],
+ [1n, -0x8000000000000001n, 1n],
+ [2n, -0x8000000000000001n, 2n],
+ [0x7ffffffen, -0x8000000000000001n, 0x7ffffffen],
+ [0x7fffffffn, -0x8000000000000001n, 0x7fffffffn],
+ [0x80000000n, -0x8000000000000001n, 0x80000000n],
+ [0x80000001n, -0x8000000000000001n, 0x80000001n],
+ [0xfffffffen, -0x8000000000000001n, 0xfffffffen],
+ [0xffffffffn, -0x8000000000000001n, 0xffffffffn],
+ [0x100000000n, -0x8000000000000001n, 0x100000000n],
+ [0x100000001n, -0x8000000000000001n, 0x100000001n],
+ [0x7ffffffffffffffen, -0x8000000000000001n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0x8000000000000001n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -0x8000000000000001n, 0x8000000000000000n],
+ [0x8000000000000001n, -0x8000000000000001n, 0n],
+ [0xfffffffffffffffen, -0x8000000000000001n, 0x7ffffffffffffffdn],
+ [0xffffffffffffffffn, -0x8000000000000001n, 0x7ffffffffffffffen],
+ [0x10000000000000000n, -0x8000000000000001n, 0x7fffffffffffffffn],
+ [0x10000000000000001n, -0x8000000000000001n, 0x8000000000000000n],
+ [-0x10000000000000001n, -0x8000000000000000n, -1n],
+ [-0x10000000000000000n, -0x8000000000000000n, 0n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, -0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x8000000000000001n, -0x8000000000000000n, -1n],
+ [-0x8000000000000000n, -0x8000000000000000n, 0n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x8000000000000000n, -0x100000001n],
+ [-0x100000000n, -0x8000000000000000n, -0x100000000n],
+ [-0xffffffffn, -0x8000000000000000n, -0xffffffffn],
+ [-0xfffffffen, -0x8000000000000000n, -0xfffffffen],
+ [-0x80000001n, -0x8000000000000000n, -0x80000001n],
+ [-0x80000000n, -0x8000000000000000n, -0x80000000n],
+ [-0x7fffffffn, -0x8000000000000000n, -0x7fffffffn],
+ [-0x7ffffffen, -0x8000000000000000n, -0x7ffffffen],
+ [-2n, -0x8000000000000000n, -2n],
+ [-1n, -0x8000000000000000n, -1n],
+ [0n, -0x8000000000000000n, 0n],
+ [1n, -0x8000000000000000n, 1n],
+ [2n, -0x8000000000000000n, 2n],
+ [0x7ffffffen, -0x8000000000000000n, 0x7ffffffen],
+ [0x7fffffffn, -0x8000000000000000n, 0x7fffffffn],
+ [0x80000000n, -0x8000000000000000n, 0x80000000n],
+ [0x80000001n, -0x8000000000000000n, 0x80000001n],
+ [0xfffffffen, -0x8000000000000000n, 0xfffffffen],
+ [0xffffffffn, -0x8000000000000000n, 0xffffffffn],
+ [0x100000000n, -0x8000000000000000n, 0x100000000n],
+ [0x100000001n, -0x8000000000000000n, 0x100000001n],
+ [0x7ffffffffffffffen, -0x8000000000000000n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -0x8000000000000000n, 0n],
+ [0x8000000000000001n, -0x8000000000000000n, 1n],
+ [0xfffffffffffffffen, -0x8000000000000000n, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, -0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, -0x8000000000000000n, 0n],
+ [0x10000000000000001n, -0x8000000000000000n, 1n],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, -3n],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, -2n],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, -1n],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, 0n],
+ [-0x8000000000000001n, -0x7fffffffffffffffn, -2n],
+ [-0x8000000000000000n, -0x7fffffffffffffffn, -1n],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, 0n],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x7fffffffffffffffn, -0x100000001n],
+ [-0x100000000n, -0x7fffffffffffffffn, -0x100000000n],
+ [-0xffffffffn, -0x7fffffffffffffffn, -0xffffffffn],
+ [-0xfffffffen, -0x7fffffffffffffffn, -0xfffffffen],
+ [-0x80000001n, -0x7fffffffffffffffn, -0x80000001n],
+ [-0x80000000n, -0x7fffffffffffffffn, -0x80000000n],
+ [-0x7fffffffn, -0x7fffffffffffffffn, -0x7fffffffn],
+ [-0x7ffffffen, -0x7fffffffffffffffn, -0x7ffffffen],
+ [-2n, -0x7fffffffffffffffn, -2n],
+ [-1n, -0x7fffffffffffffffn, -1n],
+ [0n, -0x7fffffffffffffffn, 0n],
+ [1n, -0x7fffffffffffffffn, 1n],
+ [2n, -0x7fffffffffffffffn, 2n],
+ [0x7ffffffen, -0x7fffffffffffffffn, 0x7ffffffen],
+ [0x7fffffffn, -0x7fffffffffffffffn, 0x7fffffffn],
+ [0x80000000n, -0x7fffffffffffffffn, 0x80000000n],
+ [0x80000001n, -0x7fffffffffffffffn, 0x80000001n],
+ [0xfffffffen, -0x7fffffffffffffffn, 0xfffffffen],
+ [0xffffffffn, -0x7fffffffffffffffn, 0xffffffffn],
+ [0x100000000n, -0x7fffffffffffffffn, 0x100000000n],
+ [0x100000001n, -0x7fffffffffffffffn, 0x100000001n],
+ [0x7ffffffffffffffen, -0x7fffffffffffffffn, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0x7fffffffffffffffn, 0n],
+ [0x8000000000000000n, -0x7fffffffffffffffn, 1n],
+ [0x8000000000000001n, -0x7fffffffffffffffn, 2n],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, 0n],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, 1n],
+ [0x10000000000000000n, -0x7fffffffffffffffn, 2n],
+ [0x10000000000000001n, -0x7fffffffffffffffn, 3n],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, -5n],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, -4n],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, -3n],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, -2n],
+ [-0x8000000000000001n, -0x7ffffffffffffffen, -3n],
+ [-0x8000000000000000n, -0x7ffffffffffffffen, -2n],
+ [-0x7fffffffffffffffn, -0x7ffffffffffffffen, -1n],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, 0n],
+ [-0x100000001n, -0x7ffffffffffffffen, -0x100000001n],
+ [-0x100000000n, -0x7ffffffffffffffen, -0x100000000n],
+ [-0xffffffffn, -0x7ffffffffffffffen, -0xffffffffn],
+ [-0xfffffffen, -0x7ffffffffffffffen, -0xfffffffen],
+ [-0x80000001n, -0x7ffffffffffffffen, -0x80000001n],
+ [-0x80000000n, -0x7ffffffffffffffen, -0x80000000n],
+ [-0x7fffffffn, -0x7ffffffffffffffen, -0x7fffffffn],
+ [-0x7ffffffen, -0x7ffffffffffffffen, -0x7ffffffen],
+ [-2n, -0x7ffffffffffffffen, -2n],
+ [-1n, -0x7ffffffffffffffen, -1n],
+ [0n, -0x7ffffffffffffffen, 0n],
+ [1n, -0x7ffffffffffffffen, 1n],
+ [2n, -0x7ffffffffffffffen, 2n],
+ [0x7ffffffen, -0x7ffffffffffffffen, 0x7ffffffen],
+ [0x7fffffffn, -0x7ffffffffffffffen, 0x7fffffffn],
+ [0x80000000n, -0x7ffffffffffffffen, 0x80000000n],
+ [0x80000001n, -0x7ffffffffffffffen, 0x80000001n],
+ [0xfffffffen, -0x7ffffffffffffffen, 0xfffffffen],
+ [0xffffffffn, -0x7ffffffffffffffen, 0xffffffffn],
+ [0x100000000n, -0x7ffffffffffffffen, 0x100000000n],
+ [0x100000001n, -0x7ffffffffffffffen, 0x100000001n],
+ [0x7ffffffffffffffen, -0x7ffffffffffffffen, 0n],
+ [0x7fffffffffffffffn, -0x7ffffffffffffffen, 1n],
+ [0x8000000000000000n, -0x7ffffffffffffffen, 2n],
+ [0x8000000000000001n, -0x7ffffffffffffffen, 3n],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, 2n],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, 3n],
+ [0x10000000000000000n, -0x7ffffffffffffffen, 4n],
+ [0x10000000000000001n, -0x7ffffffffffffffen, 5n],
+ [-0x10000000000000001n, 0xfffffffffffffffen, -3n],
+ [-0x10000000000000000n, 0xfffffffffffffffen, -2n],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, -1n],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, 0n],
+ [-0x8000000000000001n, 0xfffffffffffffffen, -0x8000000000000001n],
+ [-0x8000000000000000n, 0xfffffffffffffffen, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0xfffffffffffffffen, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0xfffffffffffffffen, -0x7ffffffffffffffen],
+ [-0x100000001n, 0xfffffffffffffffen, -0x100000001n],
+ [-0x100000000n, 0xfffffffffffffffen, -0x100000000n],
+ [-0xffffffffn, 0xfffffffffffffffen, -0xffffffffn],
+ [-0xfffffffen, 0xfffffffffffffffen, -0xfffffffen],
+ [-0x80000001n, 0xfffffffffffffffen, -0x80000001n],
+ [-0x80000000n, 0xfffffffffffffffen, -0x80000000n],
+ [-0x7fffffffn, 0xfffffffffffffffen, -0x7fffffffn],
+ [-0x7ffffffen, 0xfffffffffffffffen, -0x7ffffffen],
+ [-2n, 0xfffffffffffffffen, -2n],
+ [-1n, 0xfffffffffffffffen, -1n],
+ [0n, 0xfffffffffffffffen, 0n],
+ [1n, 0xfffffffffffffffen, 1n],
+ [2n, 0xfffffffffffffffen, 2n],
+ [0x7ffffffen, 0xfffffffffffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0xfffffffffffffffen, 0x7fffffffn],
+ [0x80000000n, 0xfffffffffffffffen, 0x80000000n],
+ [0x80000001n, 0xfffffffffffffffen, 0x80000001n],
+ [0xfffffffen, 0xfffffffffffffffen, 0xfffffffen],
+ [0xffffffffn, 0xfffffffffffffffen, 0xffffffffn],
+ [0x100000000n, 0xfffffffffffffffen, 0x100000000n],
+ [0x100000001n, 0xfffffffffffffffen, 0x100000001n],
+ [0x7ffffffffffffffen, 0xfffffffffffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0xfffffffffffffffen, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0xfffffffffffffffen, 0x8000000000000000n],
+ [0x8000000000000001n, 0xfffffffffffffffen, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 0n],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 1n],
+ [0x10000000000000000n, 0xfffffffffffffffen, 2n],
+ [0x10000000000000001n, 0xfffffffffffffffen, 3n],
+ [-0x10000000000000001n, 0xffffffffffffffffn, -2n],
+ [-0x10000000000000000n, 0xffffffffffffffffn, -1n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, 0n],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0xffffffffffffffffn, -0x8000000000000001n],
+ [-0x8000000000000000n, 0xffffffffffffffffn, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0xffffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0xffffffffffffffffn, -0x7ffffffffffffffen],
+ [-0x100000001n, 0xffffffffffffffffn, -0x100000001n],
+ [-0x100000000n, 0xffffffffffffffffn, -0x100000000n],
+ [-0xffffffffn, 0xffffffffffffffffn, -0xffffffffn],
+ [-0xfffffffen, 0xffffffffffffffffn, -0xfffffffen],
+ [-0x80000001n, 0xffffffffffffffffn, -0x80000001n],
+ [-0x80000000n, 0xffffffffffffffffn, -0x80000000n],
+ [-0x7fffffffn, 0xffffffffffffffffn, -0x7fffffffn],
+ [-0x7ffffffen, 0xffffffffffffffffn, -0x7ffffffen],
+ [-2n, 0xffffffffffffffffn, -2n],
+ [-1n, 0xffffffffffffffffn, -1n],
+ [0n, 0xffffffffffffffffn, 0n],
+ [1n, 0xffffffffffffffffn, 1n],
+ [2n, 0xffffffffffffffffn, 2n],
+ [0x7ffffffen, 0xffffffffffffffffn, 0x7ffffffen],
+ [0x7fffffffn, 0xffffffffffffffffn, 0x7fffffffn],
+ [0x80000000n, 0xffffffffffffffffn, 0x80000000n],
+ [0x80000001n, 0xffffffffffffffffn, 0x80000001n],
+ [0xfffffffen, 0xffffffffffffffffn, 0xfffffffen],
+ [0xffffffffn, 0xffffffffffffffffn, 0xffffffffn],
+ [0x100000000n, 0xffffffffffffffffn, 0x100000000n],
+ [0x100000001n, 0xffffffffffffffffn, 0x100000001n],
+ [0x7ffffffffffffffen, 0xffffffffffffffffn, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0xffffffffffffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0xffffffffffffffffn, 0x8000000000000000n],
+ [0x8000000000000001n, 0xffffffffffffffffn, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0xffffffffffffffffn, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 0n],
+ [0x10000000000000000n, 0xffffffffffffffffn, 1n],
+ [0x10000000000000001n, 0xffffffffffffffffn, 2n],
+ [-0x10000000000000001n, 0x10000000000000000n, -1n],
+ [-0x10000000000000000n, 0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0x10000000000000000n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0x10000000000000000n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x10000000000000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x10000000000000000n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x10000000000000000n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0x10000000000000000n, -0x100000001n],
+ [-0x100000000n, 0x10000000000000000n, -0x100000000n],
+ [-0xffffffffn, 0x10000000000000000n, -0xffffffffn],
+ [-0xfffffffen, 0x10000000000000000n, -0xfffffffen],
+ [-0x80000001n, 0x10000000000000000n, -0x80000001n],
+ [-0x80000000n, 0x10000000000000000n, -0x80000000n],
+ [-0x7fffffffn, 0x10000000000000000n, -0x7fffffffn],
+ [-0x7ffffffen, 0x10000000000000000n, -0x7ffffffen],
+ [-2n, 0x10000000000000000n, -2n],
+ [-1n, 0x10000000000000000n, -1n],
+ [0n, 0x10000000000000000n, 0n],
+ [1n, 0x10000000000000000n, 1n],
+ [2n, 0x10000000000000000n, 2n],
+ [0x7ffffffen, 0x10000000000000000n, 0x7ffffffen],
+ [0x7fffffffn, 0x10000000000000000n, 0x7fffffffn],
+ [0x80000000n, 0x10000000000000000n, 0x80000000n],
+ [0x80000001n, 0x10000000000000000n, 0x80000001n],
+ [0xfffffffen, 0x10000000000000000n, 0xfffffffen],
+ [0xffffffffn, 0x10000000000000000n, 0xffffffffn],
+ [0x100000000n, 0x10000000000000000n, 0x100000000n],
+ [0x100000001n, 0x10000000000000000n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x10000000000000000n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x10000000000000000n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x10000000000000000n, 0x8000000000000000n],
+ [0x8000000000000001n, 0x10000000000000000n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0x10000000000000000n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0x10000000000000000n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x10000000000000000n, 0n],
+ [0x10000000000000001n, 0x10000000000000000n, 1n],
+ [-0x10000000000000001n, 0x10000000000000001n, 0n],
+ [-0x10000000000000000n, 0x10000000000000001n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000001n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0x10000000000000001n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0x10000000000000001n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x10000000000000001n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x10000000000000001n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x10000000000000001n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0x10000000000000001n, -0x100000001n],
+ [-0x100000000n, 0x10000000000000001n, -0x100000000n],
+ [-0xffffffffn, 0x10000000000000001n, -0xffffffffn],
+ [-0xfffffffen, 0x10000000000000001n, -0xfffffffen],
+ [-0x80000001n, 0x10000000000000001n, -0x80000001n],
+ [-0x80000000n, 0x10000000000000001n, -0x80000000n],
+ [-0x7fffffffn, 0x10000000000000001n, -0x7fffffffn],
+ [-0x7ffffffen, 0x10000000000000001n, -0x7ffffffen],
+ [-2n, 0x10000000000000001n, -2n],
+ [-1n, 0x10000000000000001n, -1n],
+ [0n, 0x10000000000000001n, 0n],
+ [1n, 0x10000000000000001n, 1n],
+ [2n, 0x10000000000000001n, 2n],
+ [0x7ffffffen, 0x10000000000000001n, 0x7ffffffen],
+ [0x7fffffffn, 0x10000000000000001n, 0x7fffffffn],
+ [0x80000000n, 0x10000000000000001n, 0x80000000n],
+ [0x80000001n, 0x10000000000000001n, 0x80000001n],
+ [0xfffffffen, 0x10000000000000001n, 0xfffffffen],
+ [0xffffffffn, 0x10000000000000001n, 0xffffffffn],
+ [0x100000000n, 0x10000000000000001n, 0x100000000n],
+ [0x100000001n, 0x10000000000000001n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x10000000000000001n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x10000000000000001n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x10000000000000001n, 0x8000000000000000n],
+ [0x8000000000000001n, 0x10000000000000001n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0x10000000000000001n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0x10000000000000001n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x10000000000000001n, 0x10000000000000000n],
+ [0x10000000000000001n, 0x10000000000000001n, 0n],
+ [-0x10000000000000001n, -0x10000000000000001n, 0n],
+ [-0x10000000000000000n, -0x10000000000000001n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x10000000000000001n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x10000000000000001n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0x10000000000000001n, -0x8000000000000001n],
+ [-0x8000000000000000n, -0x10000000000000001n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x10000000000000001n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x10000000000000001n, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x10000000000000001n, -0x100000001n],
+ [-0x100000000n, -0x10000000000000001n, -0x100000000n],
+ [-0xffffffffn, -0x10000000000000001n, -0xffffffffn],
+ [-0xfffffffen, -0x10000000000000001n, -0xfffffffen],
+ [-0x80000001n, -0x10000000000000001n, -0x80000001n],
+ [-0x80000000n, -0x10000000000000001n, -0x80000000n],
+ [-0x7fffffffn, -0x10000000000000001n, -0x7fffffffn],
+ [-0x7ffffffen, -0x10000000000000001n, -0x7ffffffen],
+ [-2n, -0x10000000000000001n, -2n],
+ [-1n, -0x10000000000000001n, -1n],
+ [0n, -0x10000000000000001n, 0n],
+ [1n, -0x10000000000000001n, 1n],
+ [2n, -0x10000000000000001n, 2n],
+ [0x7ffffffen, -0x10000000000000001n, 0x7ffffffen],
+ [0x7fffffffn, -0x10000000000000001n, 0x7fffffffn],
+ [0x80000000n, -0x10000000000000001n, 0x80000000n],
+ [0x80000001n, -0x10000000000000001n, 0x80000001n],
+ [0xfffffffen, -0x10000000000000001n, 0xfffffffen],
+ [0xffffffffn, -0x10000000000000001n, 0xffffffffn],
+ [0x100000000n, -0x10000000000000001n, 0x100000000n],
+ [0x100000001n, -0x10000000000000001n, 0x100000001n],
+ [0x7ffffffffffffffen, -0x10000000000000001n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0x10000000000000001n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -0x10000000000000001n, 0x8000000000000000n],
+ [0x8000000000000001n, -0x10000000000000001n, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0x10000000000000001n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, -0x10000000000000001n, 0xffffffffffffffffn],
+ [0x10000000000000000n, -0x10000000000000001n, 0x10000000000000000n],
+ [0x10000000000000001n, -0x10000000000000001n, 0n],
+ [-0x10000000000000001n, -0x10000000000000000n, -1n],
+ [-0x10000000000000000n, -0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x10000000000000000n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0x10000000000000000n, -0x8000000000000001n],
+ [-0x8000000000000000n, -0x10000000000000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x10000000000000000n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x10000000000000000n, -0x7ffffffffffffffen],
+ [-0x100000001n, -0x10000000000000000n, -0x100000001n],
+ [-0x100000000n, -0x10000000000000000n, -0x100000000n],
+ [-0xffffffffn, -0x10000000000000000n, -0xffffffffn],
+ [-0xfffffffen, -0x10000000000000000n, -0xfffffffen],
+ [-0x80000001n, -0x10000000000000000n, -0x80000001n],
+ [-0x80000000n, -0x10000000000000000n, -0x80000000n],
+ [-0x7fffffffn, -0x10000000000000000n, -0x7fffffffn],
+ [-0x7ffffffen, -0x10000000000000000n, -0x7ffffffen],
+ [-2n, -0x10000000000000000n, -2n],
+ [-1n, -0x10000000000000000n, -1n],
+ [0n, -0x10000000000000000n, 0n],
+ [1n, -0x10000000000000000n, 1n],
+ [2n, -0x10000000000000000n, 2n],
+ [0x7ffffffen, -0x10000000000000000n, 0x7ffffffen],
+ [0x7fffffffn, -0x10000000000000000n, 0x7fffffffn],
+ [0x80000000n, -0x10000000000000000n, 0x80000000n],
+ [0x80000001n, -0x10000000000000000n, 0x80000001n],
+ [0xfffffffen, -0x10000000000000000n, 0xfffffffen],
+ [0xffffffffn, -0x10000000000000000n, 0xffffffffn],
+ [0x100000000n, -0x10000000000000000n, 0x100000000n],
+ [0x100000001n, -0x10000000000000000n, 0x100000001n],
+ [0x7ffffffffffffffen, -0x10000000000000000n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0x10000000000000000n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -0x10000000000000000n, 0x8000000000000000n],
+ [0x8000000000000001n, -0x10000000000000000n, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0x10000000000000000n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, -0x10000000000000000n, 0xffffffffffffffffn],
+ [0x10000000000000000n, -0x10000000000000000n, 0n],
+ [0x10000000000000001n, -0x10000000000000000n, 1n],
+ [-0x10000000000000001n, -0xffffffffffffffffn, -2n],
+ [-0x10000000000000000n, -0xffffffffffffffffn, -1n],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, 0n],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, -0xfffffffffffffffen],
+ [-0x8000000000000001n, -0xffffffffffffffffn, -0x8000000000000001n],
+ [-0x8000000000000000n, -0xffffffffffffffffn, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0xffffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0xffffffffffffffffn, -0x7ffffffffffffffen],
+ [-0x100000001n, -0xffffffffffffffffn, -0x100000001n],
+ [-0x100000000n, -0xffffffffffffffffn, -0x100000000n],
+ [-0xffffffffn, -0xffffffffffffffffn, -0xffffffffn],
+ [-0xfffffffen, -0xffffffffffffffffn, -0xfffffffen],
+ [-0x80000001n, -0xffffffffffffffffn, -0x80000001n],
+ [-0x80000000n, -0xffffffffffffffffn, -0x80000000n],
+ [-0x7fffffffn, -0xffffffffffffffffn, -0x7fffffffn],
+ [-0x7ffffffen, -0xffffffffffffffffn, -0x7ffffffen],
+ [-2n, -0xffffffffffffffffn, -2n],
+ [-1n, -0xffffffffffffffffn, -1n],
+ [0n, -0xffffffffffffffffn, 0n],
+ [1n, -0xffffffffffffffffn, 1n],
+ [2n, -0xffffffffffffffffn, 2n],
+ [0x7ffffffen, -0xffffffffffffffffn, 0x7ffffffen],
+ [0x7fffffffn, -0xffffffffffffffffn, 0x7fffffffn],
+ [0x80000000n, -0xffffffffffffffffn, 0x80000000n],
+ [0x80000001n, -0xffffffffffffffffn, 0x80000001n],
+ [0xfffffffen, -0xffffffffffffffffn, 0xfffffffen],
+ [0xffffffffn, -0xffffffffffffffffn, 0xffffffffn],
+ [0x100000000n, -0xffffffffffffffffn, 0x100000000n],
+ [0x100000001n, -0xffffffffffffffffn, 0x100000001n],
+ [0x7ffffffffffffffen, -0xffffffffffffffffn, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0xffffffffffffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -0xffffffffffffffffn, 0x8000000000000000n],
+ [0x8000000000000001n, -0xffffffffffffffffn, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0xffffffffffffffffn, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, -0xffffffffffffffffn, 0n],
+ [0x10000000000000000n, -0xffffffffffffffffn, 1n],
+ [0x10000000000000001n, -0xffffffffffffffffn, 2n],
+ [-0x10000000000000001n, -0xfffffffffffffffen, -3n],
+ [-0x10000000000000000n, -0xfffffffffffffffen, -2n],
+ [-0xffffffffffffffffn, -0xfffffffffffffffen, -1n],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, 0n],
+ [-0x8000000000000001n, -0xfffffffffffffffen, -0x8000000000000001n],
+ [-0x8000000000000000n, -0xfffffffffffffffen, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0xfffffffffffffffen, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0xfffffffffffffffen, -0x7ffffffffffffffen],
+ [-0x100000001n, -0xfffffffffffffffen, -0x100000001n],
+ [-0x100000000n, -0xfffffffffffffffen, -0x100000000n],
+ [-0xffffffffn, -0xfffffffffffffffen, -0xffffffffn],
+ [-0xfffffffen, -0xfffffffffffffffen, -0xfffffffen],
+ [-0x80000001n, -0xfffffffffffffffen, -0x80000001n],
+ [-0x80000000n, -0xfffffffffffffffen, -0x80000000n],
+ [-0x7fffffffn, -0xfffffffffffffffen, -0x7fffffffn],
+ [-0x7ffffffen, -0xfffffffffffffffen, -0x7ffffffen],
+ [-2n, -0xfffffffffffffffen, -2n],
+ [-1n, -0xfffffffffffffffen, -1n],
+ [0n, -0xfffffffffffffffen, 0n],
+ [1n, -0xfffffffffffffffen, 1n],
+ [2n, -0xfffffffffffffffen, 2n],
+ [0x7ffffffen, -0xfffffffffffffffen, 0x7ffffffen],
+ [0x7fffffffn, -0xfffffffffffffffen, 0x7fffffffn],
+ [0x80000000n, -0xfffffffffffffffen, 0x80000000n],
+ [0x80000001n, -0xfffffffffffffffen, 0x80000001n],
+ [0xfffffffen, -0xfffffffffffffffen, 0xfffffffen],
+ [0xffffffffn, -0xfffffffffffffffen, 0xffffffffn],
+ [0x100000000n, -0xfffffffffffffffen, 0x100000000n],
+ [0x100000001n, -0xfffffffffffffffen, 0x100000001n],
+ [0x7ffffffffffffffen, -0xfffffffffffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0xfffffffffffffffen, 0x7fffffffffffffffn],
+ [0x8000000000000000n, -0xfffffffffffffffen, 0x8000000000000000n],
+ [0x8000000000000001n, -0xfffffffffffffffen, 0x8000000000000001n],
+ [0xfffffffffffffffen, -0xfffffffffffffffen, 0n],
+ [0xffffffffffffffffn, -0xfffffffffffffffen, 1n],
+ [0x10000000000000000n, -0xfffffffffffffffen, 2n],
+ [0x10000000000000001n, -0xfffffffffffffffen, 3n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs % rhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-mul.js b/js/src/jit-test/tests/bigint/bigint-mul.js
new file mode 100644
index 0000000000..315c05dcf7
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-mul.js
@@ -0,0 +1,1473 @@
+const tests = [
+ [-0x10000000000000001n, -2n, 0x20000000000000002n],
+ [-0x10000000000000000n, -2n, 0x20000000000000000n],
+ [-0xffffffffffffffffn, -2n, 0x1fffffffffffffffen],
+ [-0xfffffffffffffffen, -2n, 0x1fffffffffffffffcn],
+ [-0x8000000000000001n, -2n, 0x10000000000000002n],
+ [-0x8000000000000000n, -2n, 0x10000000000000000n],
+ [-0x7fffffffffffffffn, -2n, 0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, -2n, 0xfffffffffffffffcn],
+ [-0x100000001n, -2n, 0x200000002n],
+ [-0x100000000n, -2n, 0x200000000n],
+ [-0xffffffffn, -2n, 0x1fffffffen],
+ [-0xfffffffen, -2n, 0x1fffffffcn],
+ [-0x80000001n, -2n, 0x100000002n],
+ [-0x80000000n, -2n, 0x100000000n],
+ [-0x7fffffffn, -2n, 0xfffffffen],
+ [-0x7ffffffen, -2n, 0xfffffffcn],
+ [-0x10001n, -2n, 0x20002n],
+ [-0x10000n, -2n, 0x20000n],
+ [-0xffffn, -2n, 0x1fffen],
+ [-0xfffen, -2n, 0x1fffcn],
+ [-0x8001n, -2n, 0x10002n],
+ [-0x8000n, -2n, 0x10000n],
+ [-0x7fffn, -2n, 0xfffen],
+ [-0x7ffen, -2n, 0xfffcn],
+ [-2n, -2n, 4n],
+ [-1n, -2n, 2n],
+ [0n, -2n, 0n],
+ [1n, -2n, -2n],
+ [2n, -2n, -4n],
+ [0x7ffen, -2n, -0xfffcn],
+ [0x7fffn, -2n, -0xfffen],
+ [0x8000n, -2n, -0x10000n],
+ [0x8001n, -2n, -0x10002n],
+ [0xfffen, -2n, -0x1fffcn],
+ [0xffffn, -2n, -0x1fffen],
+ [0x10000n, -2n, -0x20000n],
+ [0x10001n, -2n, -0x20002n],
+ [0x7ffffffen, -2n, -0xfffffffcn],
+ [0x7fffffffn, -2n, -0xfffffffen],
+ [0x80000000n, -2n, -0x100000000n],
+ [0x80000001n, -2n, -0x100000002n],
+ [0xfffffffen, -2n, -0x1fffffffcn],
+ [0xffffffffn, -2n, -0x1fffffffen],
+ [0x100000000n, -2n, -0x200000000n],
+ [0x100000001n, -2n, -0x200000002n],
+ [0x7ffffffffffffffen, -2n, -0xfffffffffffffffcn],
+ [0x7fffffffffffffffn, -2n, -0xfffffffffffffffen],
+ [0x8000000000000000n, -2n, -0x10000000000000000n],
+ [0x8000000000000001n, -2n, -0x10000000000000002n],
+ [0xfffffffffffffffen, -2n, -0x1fffffffffffffffcn],
+ [0xffffffffffffffffn, -2n, -0x1fffffffffffffffen],
+ [0x10000000000000000n, -2n, -0x20000000000000000n],
+ [0x10000000000000001n, -2n, -0x20000000000000002n],
+ [-0x10000000000000001n, -1n, 0x10000000000000001n],
+ [-0x10000000000000000n, -1n, 0x10000000000000000n],
+ [-0xffffffffffffffffn, -1n, 0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -1n, 0xfffffffffffffffen],
+ [-0x8000000000000001n, -1n, 0x8000000000000001n],
+ [-0x8000000000000000n, -1n, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, -1n, 0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -1n, 0x7ffffffffffffffen],
+ [-0x100000001n, -1n, 0x100000001n],
+ [-0x100000000n, -1n, 0x100000000n],
+ [-0xffffffffn, -1n, 0xffffffffn],
+ [-0xfffffffen, -1n, 0xfffffffen],
+ [-0x80000001n, -1n, 0x80000001n],
+ [-0x80000000n, -1n, 0x80000000n],
+ [-0x7fffffffn, -1n, 0x7fffffffn],
+ [-0x7ffffffen, -1n, 0x7ffffffen],
+ [-0x10001n, -1n, 0x10001n],
+ [-0x10000n, -1n, 0x10000n],
+ [-0xffffn, -1n, 0xffffn],
+ [-0xfffen, -1n, 0xfffen],
+ [-0x8001n, -1n, 0x8001n],
+ [-0x8000n, -1n, 0x8000n],
+ [-0x7fffn, -1n, 0x7fffn],
+ [-0x7ffen, -1n, 0x7ffen],
+ [-1n, -1n, 1n],
+ [0n, -1n, 0n],
+ [1n, -1n, -1n],
+ [2n, -1n, -2n],
+ [0x7ffen, -1n, -0x7ffen],
+ [0x7fffn, -1n, -0x7fffn],
+ [0x8000n, -1n, -0x8000n],
+ [0x8001n, -1n, -0x8001n],
+ [0xfffen, -1n, -0xfffen],
+ [0xffffn, -1n, -0xffffn],
+ [0x10000n, -1n, -0x10000n],
+ [0x10001n, -1n, -0x10001n],
+ [0x7ffffffen, -1n, -0x7ffffffen],
+ [0x7fffffffn, -1n, -0x7fffffffn],
+ [0x80000000n, -1n, -0x80000000n],
+ [0x80000001n, -1n, -0x80000001n],
+ [0xfffffffen, -1n, -0xfffffffen],
+ [0xffffffffn, -1n, -0xffffffffn],
+ [0x100000000n, -1n, -0x100000000n],
+ [0x100000001n, -1n, -0x100000001n],
+ [0x7ffffffffffffffen, -1n, -0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -1n, -0x7fffffffffffffffn],
+ [0x8000000000000000n, -1n, -0x8000000000000000n],
+ [0x8000000000000001n, -1n, -0x8000000000000001n],
+ [0xfffffffffffffffen, -1n, -0xfffffffffffffffen],
+ [0xffffffffffffffffn, -1n, -0xffffffffffffffffn],
+ [0x10000000000000000n, -1n, -0x10000000000000000n],
+ [0x10000000000000001n, -1n, -0x10000000000000001n],
+ [-0x10000000000000001n, 0n, 0n],
+ [-0x10000000000000000n, 0n, 0n],
+ [-0xffffffffffffffffn, 0n, 0n],
+ [-0xfffffffffffffffen, 0n, 0n],
+ [-0x8000000000000001n, 0n, 0n],
+ [-0x8000000000000000n, 0n, 0n],
+ [-0x7fffffffffffffffn, 0n, 0n],
+ [-0x7ffffffffffffffen, 0n, 0n],
+ [-0x100000001n, 0n, 0n],
+ [-0x100000000n, 0n, 0n],
+ [-0xffffffffn, 0n, 0n],
+ [-0xfffffffen, 0n, 0n],
+ [-0x80000001n, 0n, 0n],
+ [-0x80000000n, 0n, 0n],
+ [-0x7fffffffn, 0n, 0n],
+ [-0x7ffffffen, 0n, 0n],
+ [-0x10001n, 0n, 0n],
+ [-0x10000n, 0n, 0n],
+ [-0xffffn, 0n, 0n],
+ [-0xfffen, 0n, 0n],
+ [-0x8001n, 0n, 0n],
+ [-0x8000n, 0n, 0n],
+ [-0x7fffn, 0n, 0n],
+ [-0x7ffen, 0n, 0n],
+ [0n, 0n, 0n],
+ [1n, 0n, 0n],
+ [2n, 0n, 0n],
+ [0x7ffen, 0n, 0n],
+ [0x7fffn, 0n, 0n],
+ [0x8000n, 0n, 0n],
+ [0x8001n, 0n, 0n],
+ [0xfffen, 0n, 0n],
+ [0xffffn, 0n, 0n],
+ [0x10000n, 0n, 0n],
+ [0x10001n, 0n, 0n],
+ [0x7ffffffen, 0n, 0n],
+ [0x7fffffffn, 0n, 0n],
+ [0x80000000n, 0n, 0n],
+ [0x80000001n, 0n, 0n],
+ [0xfffffffen, 0n, 0n],
+ [0xffffffffn, 0n, 0n],
+ [0x100000000n, 0n, 0n],
+ [0x100000001n, 0n, 0n],
+ [0x7ffffffffffffffen, 0n, 0n],
+ [0x7fffffffffffffffn, 0n, 0n],
+ [0x8000000000000000n, 0n, 0n],
+ [0x8000000000000001n, 0n, 0n],
+ [0xfffffffffffffffen, 0n, 0n],
+ [0xffffffffffffffffn, 0n, 0n],
+ [0x10000000000000000n, 0n, 0n],
+ [0x10000000000000001n, 0n, 0n],
+ [-0x10000000000000001n, 1n, -0x10000000000000001n],
+ [-0x10000000000000000n, 1n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 1n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 1n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 1n, -0x8000000000000001n],
+ [-0x8000000000000000n, 1n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 1n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 1n, -0x7ffffffffffffffen],
+ [-0x100000001n, 1n, -0x100000001n],
+ [-0x100000000n, 1n, -0x100000000n],
+ [-0xffffffffn, 1n, -0xffffffffn],
+ [-0xfffffffen, 1n, -0xfffffffen],
+ [-0x80000001n, 1n, -0x80000001n],
+ [-0x80000000n, 1n, -0x80000000n],
+ [-0x7fffffffn, 1n, -0x7fffffffn],
+ [-0x7ffffffen, 1n, -0x7ffffffen],
+ [-0x10001n, 1n, -0x10001n],
+ [-0x10000n, 1n, -0x10000n],
+ [-0xffffn, 1n, -0xffffn],
+ [-0xfffen, 1n, -0xfffen],
+ [-0x8001n, 1n, -0x8001n],
+ [-0x8000n, 1n, -0x8000n],
+ [-0x7fffn, 1n, -0x7fffn],
+ [-0x7ffen, 1n, -0x7ffen],
+ [1n, 1n, 1n],
+ [2n, 1n, 2n],
+ [0x7ffen, 1n, 0x7ffen],
+ [0x7fffn, 1n, 0x7fffn],
+ [0x8000n, 1n, 0x8000n],
+ [0x8001n, 1n, 0x8001n],
+ [0xfffen, 1n, 0xfffen],
+ [0xffffn, 1n, 0xffffn],
+ [0x10000n, 1n, 0x10000n],
+ [0x10001n, 1n, 0x10001n],
+ [0x7ffffffen, 1n, 0x7ffffffen],
+ [0x7fffffffn, 1n, 0x7fffffffn],
+ [0x80000000n, 1n, 0x80000000n],
+ [0x80000001n, 1n, 0x80000001n],
+ [0xfffffffen, 1n, 0xfffffffen],
+ [0xffffffffn, 1n, 0xffffffffn],
+ [0x100000000n, 1n, 0x100000000n],
+ [0x100000001n, 1n, 0x100000001n],
+ [0x7ffffffffffffffen, 1n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 1n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 1n, 0x8000000000000000n],
+ [0x8000000000000001n, 1n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 1n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 1n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 1n, 0x10000000000000000n],
+ [0x10000000000000001n, 1n, 0x10000000000000001n],
+ [-0x10000000000000001n, 2n, -0x20000000000000002n],
+ [-0x10000000000000000n, 2n, -0x20000000000000000n],
+ [-0xffffffffffffffffn, 2n, -0x1fffffffffffffffen],
+ [-0xfffffffffffffffen, 2n, -0x1fffffffffffffffcn],
+ [-0x8000000000000001n, 2n, -0x10000000000000002n],
+ [-0x8000000000000000n, 2n, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, 2n, -0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, 2n, -0xfffffffffffffffcn],
+ [-0x100000001n, 2n, -0x200000002n],
+ [-0x100000000n, 2n, -0x200000000n],
+ [-0xffffffffn, 2n, -0x1fffffffen],
+ [-0xfffffffen, 2n, -0x1fffffffcn],
+ [-0x80000001n, 2n, -0x100000002n],
+ [-0x80000000n, 2n, -0x100000000n],
+ [-0x7fffffffn, 2n, -0xfffffffen],
+ [-0x7ffffffen, 2n, -0xfffffffcn],
+ [-0x10001n, 2n, -0x20002n],
+ [-0x10000n, 2n, -0x20000n],
+ [-0xffffn, 2n, -0x1fffen],
+ [-0xfffen, 2n, -0x1fffcn],
+ [-0x8001n, 2n, -0x10002n],
+ [-0x8000n, 2n, -0x10000n],
+ [-0x7fffn, 2n, -0xfffen],
+ [-0x7ffen, 2n, -0xfffcn],
+ [2n, 2n, 4n],
+ [0x7ffen, 2n, 0xfffcn],
+ [0x7fffn, 2n, 0xfffen],
+ [0x8000n, 2n, 0x10000n],
+ [0x8001n, 2n, 0x10002n],
+ [0xfffen, 2n, 0x1fffcn],
+ [0xffffn, 2n, 0x1fffen],
+ [0x10000n, 2n, 0x20000n],
+ [0x10001n, 2n, 0x20002n],
+ [0x7ffffffen, 2n, 0xfffffffcn],
+ [0x7fffffffn, 2n, 0xfffffffen],
+ [0x80000000n, 2n, 0x100000000n],
+ [0x80000001n, 2n, 0x100000002n],
+ [0xfffffffen, 2n, 0x1fffffffcn],
+ [0xffffffffn, 2n, 0x1fffffffen],
+ [0x100000000n, 2n, 0x200000000n],
+ [0x100000001n, 2n, 0x200000002n],
+ [0x7ffffffffffffffen, 2n, 0xfffffffffffffffcn],
+ [0x7fffffffffffffffn, 2n, 0xfffffffffffffffen],
+ [0x8000000000000000n, 2n, 0x10000000000000000n],
+ [0x8000000000000001n, 2n, 0x10000000000000002n],
+ [0xfffffffffffffffen, 2n, 0x1fffffffffffffffcn],
+ [0xffffffffffffffffn, 2n, 0x1fffffffffffffffen],
+ [0x10000000000000000n, 2n, 0x20000000000000000n],
+ [0x10000000000000001n, 2n, 0x20000000000000002n],
+ [-0x10000000000000001n, 0x7ffen, -0x7ffe0000000000007ffen],
+ [-0x10000000000000000n, 0x7ffen, -0x7ffe0000000000000000n],
+ [-0xffffffffffffffffn, 0x7ffen, -0x7ffdffffffffffff8002n],
+ [-0xfffffffffffffffen, 0x7ffen, -0x7ffdffffffffffff0004n],
+ [-0x8000000000000001n, 0x7ffen, -0x3fff0000000000007ffen],
+ [-0x8000000000000000n, 0x7ffen, -0x3fff0000000000000000n],
+ [-0x7fffffffffffffffn, 0x7ffen, -0x3ffeffffffffffff8002n],
+ [-0x7ffffffffffffffen, 0x7ffen, -0x3ffeffffffffffff0004n],
+ [-0x100000001n, 0x7ffen, -0x7ffe00007ffen],
+ [-0x100000000n, 0x7ffen, -0x7ffe00000000n],
+ [-0xffffffffn, 0x7ffen, -0x7ffdffff8002n],
+ [-0xfffffffen, 0x7ffen, -0x7ffdffff0004n],
+ [-0x80000001n, 0x7ffen, -0x3fff00007ffen],
+ [-0x80000000n, 0x7ffen, -0x3fff00000000n],
+ [-0x7fffffffn, 0x7ffen, -0x3ffeffff8002n],
+ [-0x7ffffffen, 0x7ffen, -0x3ffeffff0004n],
+ [-0x10001n, 0x7ffen, -0x7ffe7ffen],
+ [-0x10000n, 0x7ffen, -0x7ffe0000n],
+ [-0xffffn, 0x7ffen, -0x7ffd8002n],
+ [-0xfffen, 0x7ffen, -0x7ffd0004n],
+ [-0x8001n, 0x7ffen, -0x3fff7ffen],
+ [-0x8000n, 0x7ffen, -0x3fff0000n],
+ [-0x7fffn, 0x7ffen, -0x3ffe8002n],
+ [-0x7ffen, 0x7ffen, -0x3ffe0004n],
+ [0x7ffen, 0x7ffen, 0x3ffe0004n],
+ [0x7fffn, 0x7ffen, 0x3ffe8002n],
+ [0x8000n, 0x7ffen, 0x3fff0000n],
+ [0x8001n, 0x7ffen, 0x3fff7ffen],
+ [0xfffen, 0x7ffen, 0x7ffd0004n],
+ [0xffffn, 0x7ffen, 0x7ffd8002n],
+ [0x10000n, 0x7ffen, 0x7ffe0000n],
+ [0x10001n, 0x7ffen, 0x7ffe7ffen],
+ [0x7ffffffen, 0x7ffen, 0x3ffeffff0004n],
+ [0x7fffffffn, 0x7ffen, 0x3ffeffff8002n],
+ [0x80000000n, 0x7ffen, 0x3fff00000000n],
+ [0x80000001n, 0x7ffen, 0x3fff00007ffen],
+ [0xfffffffen, 0x7ffen, 0x7ffdffff0004n],
+ [0xffffffffn, 0x7ffen, 0x7ffdffff8002n],
+ [0x100000000n, 0x7ffen, 0x7ffe00000000n],
+ [0x100000001n, 0x7ffen, 0x7ffe00007ffen],
+ [0x7ffffffffffffffen, 0x7ffen, 0x3ffeffffffffffff0004n],
+ [0x7fffffffffffffffn, 0x7ffen, 0x3ffeffffffffffff8002n],
+ [0x8000000000000000n, 0x7ffen, 0x3fff0000000000000000n],
+ [0x8000000000000001n, 0x7ffen, 0x3fff0000000000007ffen],
+ [0xfffffffffffffffen, 0x7ffen, 0x7ffdffffffffffff0004n],
+ [0xffffffffffffffffn, 0x7ffen, 0x7ffdffffffffffff8002n],
+ [0x10000000000000000n, 0x7ffen, 0x7ffe0000000000000000n],
+ [0x10000000000000001n, 0x7ffen, 0x7ffe0000000000007ffen],
+ [-0x10000000000000001n, 0x7fffn, -0x7fff0000000000007fffn],
+ [-0x10000000000000000n, 0x7fffn, -0x7fff0000000000000000n],
+ [-0xffffffffffffffffn, 0x7fffn, -0x7ffeffffffffffff8001n],
+ [-0xfffffffffffffffen, 0x7fffn, -0x7ffeffffffffffff0002n],
+ [-0x8000000000000001n, 0x7fffn, -0x3fff8000000000007fffn],
+ [-0x8000000000000000n, 0x7fffn, -0x3fff8000000000000000n],
+ [-0x7fffffffffffffffn, 0x7fffn, -0x3fff7fffffffffff8001n],
+ [-0x7ffffffffffffffen, 0x7fffn, -0x3fff7fffffffffff0002n],
+ [-0x100000001n, 0x7fffn, -0x7fff00007fffn],
+ [-0x100000000n, 0x7fffn, -0x7fff00000000n],
+ [-0xffffffffn, 0x7fffn, -0x7ffeffff8001n],
+ [-0xfffffffen, 0x7fffn, -0x7ffeffff0002n],
+ [-0x80000001n, 0x7fffn, -0x3fff80007fffn],
+ [-0x80000000n, 0x7fffn, -0x3fff80000000n],
+ [-0x7fffffffn, 0x7fffn, -0x3fff7fff8001n],
+ [-0x7ffffffen, 0x7fffn, -0x3fff7fff0002n],
+ [-0x10001n, 0x7fffn, -0x7fff7fffn],
+ [-0x10000n, 0x7fffn, -0x7fff0000n],
+ [-0xffffn, 0x7fffn, -0x7ffe8001n],
+ [-0xfffen, 0x7fffn, -0x7ffe0002n],
+ [-0x8001n, 0x7fffn, -0x3fffffffn],
+ [-0x8000n, 0x7fffn, -0x3fff8000n],
+ [-0x7fffn, 0x7fffn, -0x3fff0001n],
+ [-0x7ffen, 0x7fffn, -0x3ffe8002n],
+ [0x7fffn, 0x7fffn, 0x3fff0001n],
+ [0x8000n, 0x7fffn, 0x3fff8000n],
+ [0x8001n, 0x7fffn, 0x3fffffffn],
+ [0xfffen, 0x7fffn, 0x7ffe0002n],
+ [0xffffn, 0x7fffn, 0x7ffe8001n],
+ [0x10000n, 0x7fffn, 0x7fff0000n],
+ [0x10001n, 0x7fffn, 0x7fff7fffn],
+ [0x7ffffffen, 0x7fffn, 0x3fff7fff0002n],
+ [0x7fffffffn, 0x7fffn, 0x3fff7fff8001n],
+ [0x80000000n, 0x7fffn, 0x3fff80000000n],
+ [0x80000001n, 0x7fffn, 0x3fff80007fffn],
+ [0xfffffffen, 0x7fffn, 0x7ffeffff0002n],
+ [0xffffffffn, 0x7fffn, 0x7ffeffff8001n],
+ [0x100000000n, 0x7fffn, 0x7fff00000000n],
+ [0x100000001n, 0x7fffn, 0x7fff00007fffn],
+ [0x7ffffffffffffffen, 0x7fffn, 0x3fff7fffffffffff0002n],
+ [0x7fffffffffffffffn, 0x7fffn, 0x3fff7fffffffffff8001n],
+ [0x8000000000000000n, 0x7fffn, 0x3fff8000000000000000n],
+ [0x8000000000000001n, 0x7fffn, 0x3fff8000000000007fffn],
+ [0xfffffffffffffffen, 0x7fffn, 0x7ffeffffffffffff0002n],
+ [0xffffffffffffffffn, 0x7fffn, 0x7ffeffffffffffff8001n],
+ [0x10000000000000000n, 0x7fffn, 0x7fff0000000000000000n],
+ [0x10000000000000001n, 0x7fffn, 0x7fff0000000000007fffn],
+ [-0x10000000000000001n, 0x8000n, -0x80000000000000008000n],
+ [-0x10000000000000000n, 0x8000n, -0x80000000000000000000n],
+ [-0xffffffffffffffffn, 0x8000n, -0x7fffffffffffffff8000n],
+ [-0xfffffffffffffffen, 0x8000n, -0x7fffffffffffffff0000n],
+ [-0x8000000000000001n, 0x8000n, -0x40000000000000008000n],
+ [-0x8000000000000000n, 0x8000n, -0x40000000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000n, -0x3fffffffffffffff8000n],
+ [-0x7ffffffffffffffen, 0x8000n, -0x3fffffffffffffff0000n],
+ [-0x100000001n, 0x8000n, -0x800000008000n],
+ [-0x100000000n, 0x8000n, -0x800000000000n],
+ [-0xffffffffn, 0x8000n, -0x7fffffff8000n],
+ [-0xfffffffen, 0x8000n, -0x7fffffff0000n],
+ [-0x80000001n, 0x8000n, -0x400000008000n],
+ [-0x80000000n, 0x8000n, -0x400000000000n],
+ [-0x7fffffffn, 0x8000n, -0x3fffffff8000n],
+ [-0x7ffffffen, 0x8000n, -0x3fffffff0000n],
+ [-0x10001n, 0x8000n, -0x80008000n],
+ [-0x10000n, 0x8000n, -0x80000000n],
+ [-0xffffn, 0x8000n, -0x7fff8000n],
+ [-0xfffen, 0x8000n, -0x7fff0000n],
+ [-0x8001n, 0x8000n, -0x40008000n],
+ [-0x8000n, 0x8000n, -0x40000000n],
+ [-0x7fffn, 0x8000n, -0x3fff8000n],
+ [-0x7ffen, 0x8000n, -0x3fff0000n],
+ [0x8000n, 0x8000n, 0x40000000n],
+ [0x8001n, 0x8000n, 0x40008000n],
+ [0xfffen, 0x8000n, 0x7fff0000n],
+ [0xffffn, 0x8000n, 0x7fff8000n],
+ [0x10000n, 0x8000n, 0x80000000n],
+ [0x10001n, 0x8000n, 0x80008000n],
+ [0x7ffffffen, 0x8000n, 0x3fffffff0000n],
+ [0x7fffffffn, 0x8000n, 0x3fffffff8000n],
+ [0x80000000n, 0x8000n, 0x400000000000n],
+ [0x80000001n, 0x8000n, 0x400000008000n],
+ [0xfffffffen, 0x8000n, 0x7fffffff0000n],
+ [0xffffffffn, 0x8000n, 0x7fffffff8000n],
+ [0x100000000n, 0x8000n, 0x800000000000n],
+ [0x100000001n, 0x8000n, 0x800000008000n],
+ [0x7ffffffffffffffen, 0x8000n, 0x3fffffffffffffff0000n],
+ [0x7fffffffffffffffn, 0x8000n, 0x3fffffffffffffff8000n],
+ [0x8000000000000000n, 0x8000n, 0x40000000000000000000n],
+ [0x8000000000000001n, 0x8000n, 0x40000000000000008000n],
+ [0xfffffffffffffffen, 0x8000n, 0x7fffffffffffffff0000n],
+ [0xffffffffffffffffn, 0x8000n, 0x7fffffffffffffff8000n],
+ [0x10000000000000000n, 0x8000n, 0x80000000000000000000n],
+ [0x10000000000000001n, 0x8000n, 0x80000000000000008000n],
+ [-0x10000000000000001n, 0x8001n, -0x80010000000000008001n],
+ [-0x10000000000000000n, 0x8001n, -0x80010000000000000000n],
+ [-0xffffffffffffffffn, 0x8001n, -0x8000ffffffffffff7fffn],
+ [-0xfffffffffffffffen, 0x8001n, -0x8000fffffffffffefffen],
+ [-0x8000000000000001n, 0x8001n, -0x40008000000000008001n],
+ [-0x8000000000000000n, 0x8001n, -0x40008000000000000000n],
+ [-0x7fffffffffffffffn, 0x8001n, -0x40007fffffffffff7fffn],
+ [-0x7ffffffffffffffen, 0x8001n, -0x40007ffffffffffefffen],
+ [-0x100000001n, 0x8001n, -0x800100008001n],
+ [-0x100000000n, 0x8001n, -0x800100000000n],
+ [-0xffffffffn, 0x8001n, -0x8000ffff7fffn],
+ [-0xfffffffen, 0x8001n, -0x8000fffefffen],
+ [-0x80000001n, 0x8001n, -0x400080008001n],
+ [-0x80000000n, 0x8001n, -0x400080000000n],
+ [-0x7fffffffn, 0x8001n, -0x40007fff7fffn],
+ [-0x7ffffffen, 0x8001n, -0x40007ffefffen],
+ [-0x10001n, 0x8001n, -0x80018001n],
+ [-0x10000n, 0x8001n, -0x80010000n],
+ [-0xffffn, 0x8001n, -0x80007fffn],
+ [-0xfffen, 0x8001n, -0x7ffffffen],
+ [-0x8001n, 0x8001n, -0x40010001n],
+ [-0x8000n, 0x8001n, -0x40008000n],
+ [-0x7fffn, 0x8001n, -0x3fffffffn],
+ [-0x7ffen, 0x8001n, -0x3fff7ffen],
+ [0x8001n, 0x8001n, 0x40010001n],
+ [0xfffen, 0x8001n, 0x7ffffffen],
+ [0xffffn, 0x8001n, 0x80007fffn],
+ [0x10000n, 0x8001n, 0x80010000n],
+ [0x10001n, 0x8001n, 0x80018001n],
+ [0x7ffffffen, 0x8001n, 0x40007ffefffen],
+ [0x7fffffffn, 0x8001n, 0x40007fff7fffn],
+ [0x80000000n, 0x8001n, 0x400080000000n],
+ [0x80000001n, 0x8001n, 0x400080008001n],
+ [0xfffffffen, 0x8001n, 0x8000fffefffen],
+ [0xffffffffn, 0x8001n, 0x8000ffff7fffn],
+ [0x100000000n, 0x8001n, 0x800100000000n],
+ [0x100000001n, 0x8001n, 0x800100008001n],
+ [0x7ffffffffffffffen, 0x8001n, 0x40007ffffffffffefffen],
+ [0x7fffffffffffffffn, 0x8001n, 0x40007fffffffffff7fffn],
+ [0x8000000000000000n, 0x8001n, 0x40008000000000000000n],
+ [0x8000000000000001n, 0x8001n, 0x40008000000000008001n],
+ [0xfffffffffffffffen, 0x8001n, 0x8000fffffffffffefffen],
+ [0xffffffffffffffffn, 0x8001n, 0x8000ffffffffffff7fffn],
+ [0x10000000000000000n, 0x8001n, 0x80010000000000000000n],
+ [0x10000000000000001n, 0x8001n, 0x80010000000000008001n],
+ [-0x10000000000000001n, -0x8001n, 0x80010000000000008001n],
+ [-0x10000000000000000n, -0x8001n, 0x80010000000000000000n],
+ [-0xffffffffffffffffn, -0x8001n, 0x8000ffffffffffff7fffn],
+ [-0xfffffffffffffffen, -0x8001n, 0x8000fffffffffffefffen],
+ [-0x8000000000000001n, -0x8001n, 0x40008000000000008001n],
+ [-0x8000000000000000n, -0x8001n, 0x40008000000000000000n],
+ [-0x7fffffffffffffffn, -0x8001n, 0x40007fffffffffff7fffn],
+ [-0x7ffffffffffffffen, -0x8001n, 0x40007ffffffffffefffen],
+ [-0x100000001n, -0x8001n, 0x800100008001n],
+ [-0x100000000n, -0x8001n, 0x800100000000n],
+ [-0xffffffffn, -0x8001n, 0x8000ffff7fffn],
+ [-0xfffffffen, -0x8001n, 0x8000fffefffen],
+ [-0x80000001n, -0x8001n, 0x400080008001n],
+ [-0x80000000n, -0x8001n, 0x400080000000n],
+ [-0x7fffffffn, -0x8001n, 0x40007fff7fffn],
+ [-0x7ffffffen, -0x8001n, 0x40007ffefffen],
+ [-0x10001n, -0x8001n, 0x80018001n],
+ [-0x10000n, -0x8001n, 0x80010000n],
+ [-0xffffn, -0x8001n, 0x80007fffn],
+ [-0xfffen, -0x8001n, 0x7ffffffen],
+ [-0x8001n, -0x8001n, 0x40010001n],
+ [-0x8000n, -0x8001n, 0x40008000n],
+ [-0x7fffn, -0x8001n, 0x3fffffffn],
+ [-0x7ffen, -0x8001n, 0x3fff7ffen],
+ [0xfffen, -0x8001n, -0x7ffffffen],
+ [0xffffn, -0x8001n, -0x80007fffn],
+ [0x10000n, -0x8001n, -0x80010000n],
+ [0x10001n, -0x8001n, -0x80018001n],
+ [0x7ffffffen, -0x8001n, -0x40007ffefffen],
+ [0x7fffffffn, -0x8001n, -0x40007fff7fffn],
+ [0x80000000n, -0x8001n, -0x400080000000n],
+ [0x80000001n, -0x8001n, -0x400080008001n],
+ [0xfffffffen, -0x8001n, -0x8000fffefffen],
+ [0xffffffffn, -0x8001n, -0x8000ffff7fffn],
+ [0x100000000n, -0x8001n, -0x800100000000n],
+ [0x100000001n, -0x8001n, -0x800100008001n],
+ [0x7ffffffffffffffen, -0x8001n, -0x40007ffffffffffefffen],
+ [0x7fffffffffffffffn, -0x8001n, -0x40007fffffffffff7fffn],
+ [0x8000000000000000n, -0x8001n, -0x40008000000000000000n],
+ [0x8000000000000001n, -0x8001n, -0x40008000000000008001n],
+ [0xfffffffffffffffen, -0x8001n, -0x8000fffffffffffefffen],
+ [0xffffffffffffffffn, -0x8001n, -0x8000ffffffffffff7fffn],
+ [0x10000000000000000n, -0x8001n, -0x80010000000000000000n],
+ [0x10000000000000001n, -0x8001n, -0x80010000000000008001n],
+ [-0x10000000000000001n, -0x8000n, 0x80000000000000008000n],
+ [-0x10000000000000000n, -0x8000n, 0x80000000000000000000n],
+ [-0xffffffffffffffffn, -0x8000n, 0x7fffffffffffffff8000n],
+ [-0xfffffffffffffffen, -0x8000n, 0x7fffffffffffffff0000n],
+ [-0x8000000000000001n, -0x8000n, 0x40000000000000008000n],
+ [-0x8000000000000000n, -0x8000n, 0x40000000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000n, 0x3fffffffffffffff8000n],
+ [-0x7ffffffffffffffen, -0x8000n, 0x3fffffffffffffff0000n],
+ [-0x100000001n, -0x8000n, 0x800000008000n],
+ [-0x100000000n, -0x8000n, 0x800000000000n],
+ [-0xffffffffn, -0x8000n, 0x7fffffff8000n],
+ [-0xfffffffen, -0x8000n, 0x7fffffff0000n],
+ [-0x80000001n, -0x8000n, 0x400000008000n],
+ [-0x80000000n, -0x8000n, 0x400000000000n],
+ [-0x7fffffffn, -0x8000n, 0x3fffffff8000n],
+ [-0x7ffffffen, -0x8000n, 0x3fffffff0000n],
+ [-0x10001n, -0x8000n, 0x80008000n],
+ [-0x10000n, -0x8000n, 0x80000000n],
+ [-0xffffn, -0x8000n, 0x7fff8000n],
+ [-0xfffen, -0x8000n, 0x7fff0000n],
+ [-0x8000n, -0x8000n, 0x40000000n],
+ [-0x7fffn, -0x8000n, 0x3fff8000n],
+ [-0x7ffen, -0x8000n, 0x3fff0000n],
+ [0xfffen, -0x8000n, -0x7fff0000n],
+ [0xffffn, -0x8000n, -0x7fff8000n],
+ [0x10000n, -0x8000n, -0x80000000n],
+ [0x10001n, -0x8000n, -0x80008000n],
+ [0x7ffffffen, -0x8000n, -0x3fffffff0000n],
+ [0x7fffffffn, -0x8000n, -0x3fffffff8000n],
+ [0x80000000n, -0x8000n, -0x400000000000n],
+ [0x80000001n, -0x8000n, -0x400000008000n],
+ [0xfffffffen, -0x8000n, -0x7fffffff0000n],
+ [0xffffffffn, -0x8000n, -0x7fffffff8000n],
+ [0x100000000n, -0x8000n, -0x800000000000n],
+ [0x100000001n, -0x8000n, -0x800000008000n],
+ [0x7ffffffffffffffen, -0x8000n, -0x3fffffffffffffff0000n],
+ [0x7fffffffffffffffn, -0x8000n, -0x3fffffffffffffff8000n],
+ [0x8000000000000000n, -0x8000n, -0x40000000000000000000n],
+ [0x8000000000000001n, -0x8000n, -0x40000000000000008000n],
+ [0xfffffffffffffffen, -0x8000n, -0x7fffffffffffffff0000n],
+ [0xffffffffffffffffn, -0x8000n, -0x7fffffffffffffff8000n],
+ [0x10000000000000000n, -0x8000n, -0x80000000000000000000n],
+ [0x10000000000000001n, -0x8000n, -0x80000000000000008000n],
+ [-0x10000000000000001n, -0x7fffn, 0x7fff0000000000007fffn],
+ [-0x10000000000000000n, -0x7fffn, 0x7fff0000000000000000n],
+ [-0xffffffffffffffffn, -0x7fffn, 0x7ffeffffffffffff8001n],
+ [-0xfffffffffffffffen, -0x7fffn, 0x7ffeffffffffffff0002n],
+ [-0x8000000000000001n, -0x7fffn, 0x3fff8000000000007fffn],
+ [-0x8000000000000000n, -0x7fffn, 0x3fff8000000000000000n],
+ [-0x7fffffffffffffffn, -0x7fffn, 0x3fff7fffffffffff8001n],
+ [-0x7ffffffffffffffen, -0x7fffn, 0x3fff7fffffffffff0002n],
+ [-0x100000001n, -0x7fffn, 0x7fff00007fffn],
+ [-0x100000000n, -0x7fffn, 0x7fff00000000n],
+ [-0xffffffffn, -0x7fffn, 0x7ffeffff8001n],
+ [-0xfffffffen, -0x7fffn, 0x7ffeffff0002n],
+ [-0x80000001n, -0x7fffn, 0x3fff80007fffn],
+ [-0x80000000n, -0x7fffn, 0x3fff80000000n],
+ [-0x7fffffffn, -0x7fffn, 0x3fff7fff8001n],
+ [-0x7ffffffen, -0x7fffn, 0x3fff7fff0002n],
+ [-0x10001n, -0x7fffn, 0x7fff7fffn],
+ [-0x10000n, -0x7fffn, 0x7fff0000n],
+ [-0xffffn, -0x7fffn, 0x7ffe8001n],
+ [-0xfffen, -0x7fffn, 0x7ffe0002n],
+ [-0x7fffn, -0x7fffn, 0x3fff0001n],
+ [-0x7ffen, -0x7fffn, 0x3ffe8002n],
+ [0xfffen, -0x7fffn, -0x7ffe0002n],
+ [0xffffn, -0x7fffn, -0x7ffe8001n],
+ [0x10000n, -0x7fffn, -0x7fff0000n],
+ [0x10001n, -0x7fffn, -0x7fff7fffn],
+ [0x7ffffffen, -0x7fffn, -0x3fff7fff0002n],
+ [0x7fffffffn, -0x7fffn, -0x3fff7fff8001n],
+ [0x80000000n, -0x7fffn, -0x3fff80000000n],
+ [0x80000001n, -0x7fffn, -0x3fff80007fffn],
+ [0xfffffffen, -0x7fffn, -0x7ffeffff0002n],
+ [0xffffffffn, -0x7fffn, -0x7ffeffff8001n],
+ [0x100000000n, -0x7fffn, -0x7fff00000000n],
+ [0x100000001n, -0x7fffn, -0x7fff00007fffn],
+ [0x7ffffffffffffffen, -0x7fffn, -0x3fff7fffffffffff0002n],
+ [0x7fffffffffffffffn, -0x7fffn, -0x3fff7fffffffffff8001n],
+ [0x8000000000000000n, -0x7fffn, -0x3fff8000000000000000n],
+ [0x8000000000000001n, -0x7fffn, -0x3fff8000000000007fffn],
+ [0xfffffffffffffffen, -0x7fffn, -0x7ffeffffffffffff0002n],
+ [0xffffffffffffffffn, -0x7fffn, -0x7ffeffffffffffff8001n],
+ [0x10000000000000000n, -0x7fffn, -0x7fff0000000000000000n],
+ [0x10000000000000001n, -0x7fffn, -0x7fff0000000000007fffn],
+ [-0x10000000000000001n, -0x7ffen, 0x7ffe0000000000007ffen],
+ [-0x10000000000000000n, -0x7ffen, 0x7ffe0000000000000000n],
+ [-0xffffffffffffffffn, -0x7ffen, 0x7ffdffffffffffff8002n],
+ [-0xfffffffffffffffen, -0x7ffen, 0x7ffdffffffffffff0004n],
+ [-0x8000000000000001n, -0x7ffen, 0x3fff0000000000007ffen],
+ [-0x8000000000000000n, -0x7ffen, 0x3fff0000000000000000n],
+ [-0x7fffffffffffffffn, -0x7ffen, 0x3ffeffffffffffff8002n],
+ [-0x7ffffffffffffffen, -0x7ffen, 0x3ffeffffffffffff0004n],
+ [-0x100000001n, -0x7ffen, 0x7ffe00007ffen],
+ [-0x100000000n, -0x7ffen, 0x7ffe00000000n],
+ [-0xffffffffn, -0x7ffen, 0x7ffdffff8002n],
+ [-0xfffffffen, -0x7ffen, 0x7ffdffff0004n],
+ [-0x80000001n, -0x7ffen, 0x3fff00007ffen],
+ [-0x80000000n, -0x7ffen, 0x3fff00000000n],
+ [-0x7fffffffn, -0x7ffen, 0x3ffeffff8002n],
+ [-0x7ffffffen, -0x7ffen, 0x3ffeffff0004n],
+ [-0x10001n, -0x7ffen, 0x7ffe7ffen],
+ [-0x10000n, -0x7ffen, 0x7ffe0000n],
+ [-0xffffn, -0x7ffen, 0x7ffd8002n],
+ [-0xfffen, -0x7ffen, 0x7ffd0004n],
+ [-0x7ffen, -0x7ffen, 0x3ffe0004n],
+ [0xfffen, -0x7ffen, -0x7ffd0004n],
+ [0xffffn, -0x7ffen, -0x7ffd8002n],
+ [0x10000n, -0x7ffen, -0x7ffe0000n],
+ [0x10001n, -0x7ffen, -0x7ffe7ffen],
+ [0x7ffffffen, -0x7ffen, -0x3ffeffff0004n],
+ [0x7fffffffn, -0x7ffen, -0x3ffeffff8002n],
+ [0x80000000n, -0x7ffen, -0x3fff00000000n],
+ [0x80000001n, -0x7ffen, -0x3fff00007ffen],
+ [0xfffffffen, -0x7ffen, -0x7ffdffff0004n],
+ [0xffffffffn, -0x7ffen, -0x7ffdffff8002n],
+ [0x100000000n, -0x7ffen, -0x7ffe00000000n],
+ [0x100000001n, -0x7ffen, -0x7ffe00007ffen],
+ [0x7ffffffffffffffen, -0x7ffen, -0x3ffeffffffffffff0004n],
+ [0x7fffffffffffffffn, -0x7ffen, -0x3ffeffffffffffff8002n],
+ [0x8000000000000000n, -0x7ffen, -0x3fff0000000000000000n],
+ [0x8000000000000001n, -0x7ffen, -0x3fff0000000000007ffen],
+ [0xfffffffffffffffen, -0x7ffen, -0x7ffdffffffffffff0004n],
+ [0xffffffffffffffffn, -0x7ffen, -0x7ffdffffffffffff8002n],
+ [0x10000000000000000n, -0x7ffen, -0x7ffe0000000000000000n],
+ [0x10000000000000001n, -0x7ffen, -0x7ffe0000000000007ffen],
+ [-0x10000000000000001n, 0xfffen, -0xfffe000000000000fffen],
+ [-0x10000000000000000n, 0xfffen, -0xfffe0000000000000000n],
+ [-0xffffffffffffffffn, 0xfffen, -0xfffdffffffffffff0002n],
+ [-0xfffffffffffffffen, 0xfffen, -0xfffdfffffffffffe0004n],
+ [-0x8000000000000001n, 0xfffen, -0x7fff000000000000fffen],
+ [-0x8000000000000000n, 0xfffen, -0x7fff0000000000000000n],
+ [-0x7fffffffffffffffn, 0xfffen, -0x7ffeffffffffffff0002n],
+ [-0x7ffffffffffffffen, 0xfffen, -0x7ffefffffffffffe0004n],
+ [-0x100000001n, 0xfffen, -0xfffe0000fffen],
+ [-0x100000000n, 0xfffen, -0xfffe00000000n],
+ [-0xffffffffn, 0xfffen, -0xfffdffff0002n],
+ [-0xfffffffen, 0xfffen, -0xfffdfffe0004n],
+ [-0x80000001n, 0xfffen, -0x7fff0000fffen],
+ [-0x80000000n, 0xfffen, -0x7fff00000000n],
+ [-0x7fffffffn, 0xfffen, -0x7ffeffff0002n],
+ [-0x7ffffffen, 0xfffen, -0x7ffefffe0004n],
+ [-0x10001n, 0xfffen, -0xfffefffen],
+ [-0x10000n, 0xfffen, -0xfffe0000n],
+ [-0xffffn, 0xfffen, -0xfffd0002n],
+ [-0xfffen, 0xfffen, -0xfffc0004n],
+ [0xfffen, 0xfffen, 0xfffc0004n],
+ [0xffffn, 0xfffen, 0xfffd0002n],
+ [0x10000n, 0xfffen, 0xfffe0000n],
+ [0x10001n, 0xfffen, 0xfffefffen],
+ [0x7ffffffen, 0xfffen, 0x7ffefffe0004n],
+ [0x7fffffffn, 0xfffen, 0x7ffeffff0002n],
+ [0x80000000n, 0xfffen, 0x7fff00000000n],
+ [0x80000001n, 0xfffen, 0x7fff0000fffen],
+ [0xfffffffen, 0xfffen, 0xfffdfffe0004n],
+ [0xffffffffn, 0xfffen, 0xfffdffff0002n],
+ [0x100000000n, 0xfffen, 0xfffe00000000n],
+ [0x100000001n, 0xfffen, 0xfffe0000fffen],
+ [0x7ffffffffffffffen, 0xfffen, 0x7ffefffffffffffe0004n],
+ [0x7fffffffffffffffn, 0xfffen, 0x7ffeffffffffffff0002n],
+ [0x8000000000000000n, 0xfffen, 0x7fff0000000000000000n],
+ [0x8000000000000001n, 0xfffen, 0x7fff000000000000fffen],
+ [0xfffffffffffffffen, 0xfffen, 0xfffdfffffffffffe0004n],
+ [0xffffffffffffffffn, 0xfffen, 0xfffdffffffffffff0002n],
+ [0x10000000000000000n, 0xfffen, 0xfffe0000000000000000n],
+ [0x10000000000000001n, 0xfffen, 0xfffe000000000000fffen],
+ [-0x10000000000000001n, 0xffffn, -0xffff000000000000ffffn],
+ [-0x10000000000000000n, 0xffffn, -0xffff0000000000000000n],
+ [-0xffffffffffffffffn, 0xffffn, -0xfffeffffffffffff0001n],
+ [-0xfffffffffffffffen, 0xffffn, -0xfffefffffffffffe0002n],
+ [-0x8000000000000001n, 0xffffn, -0x7fff800000000000ffffn],
+ [-0x8000000000000000n, 0xffffn, -0x7fff8000000000000000n],
+ [-0x7fffffffffffffffn, 0xffffn, -0x7fff7fffffffffff0001n],
+ [-0x7ffffffffffffffen, 0xffffn, -0x7fff7ffffffffffe0002n],
+ [-0x100000001n, 0xffffn, -0xffff0000ffffn],
+ [-0x100000000n, 0xffffn, -0xffff00000000n],
+ [-0xffffffffn, 0xffffn, -0xfffeffff0001n],
+ [-0xfffffffen, 0xffffn, -0xfffefffe0002n],
+ [-0x80000001n, 0xffffn, -0x7fff8000ffffn],
+ [-0x80000000n, 0xffffn, -0x7fff80000000n],
+ [-0x7fffffffn, 0xffffn, -0x7fff7fff0001n],
+ [-0x7ffffffen, 0xffffn, -0x7fff7ffe0002n],
+ [-0x10001n, 0xffffn, -0xffffffffn],
+ [-0x10000n, 0xffffn, -0xffff0000n],
+ [-0xffffn, 0xffffn, -0xfffe0001n],
+ [-0xfffen, 0xffffn, -0xfffd0002n],
+ [0xffffn, 0xffffn, 0xfffe0001n],
+ [0x10000n, 0xffffn, 0xffff0000n],
+ [0x10001n, 0xffffn, 0xffffffffn],
+ [0x7ffffffen, 0xffffn, 0x7fff7ffe0002n],
+ [0x7fffffffn, 0xffffn, 0x7fff7fff0001n],
+ [0x80000000n, 0xffffn, 0x7fff80000000n],
+ [0x80000001n, 0xffffn, 0x7fff8000ffffn],
+ [0xfffffffen, 0xffffn, 0xfffefffe0002n],
+ [0xffffffffn, 0xffffn, 0xfffeffff0001n],
+ [0x100000000n, 0xffffn, 0xffff00000000n],
+ [0x100000001n, 0xffffn, 0xffff0000ffffn],
+ [0x7ffffffffffffffen, 0xffffn, 0x7fff7ffffffffffe0002n],
+ [0x7fffffffffffffffn, 0xffffn, 0x7fff7fffffffffff0001n],
+ [0x8000000000000000n, 0xffffn, 0x7fff8000000000000000n],
+ [0x8000000000000001n, 0xffffn, 0x7fff800000000000ffffn],
+ [0xfffffffffffffffen, 0xffffn, 0xfffefffffffffffe0002n],
+ [0xffffffffffffffffn, 0xffffn, 0xfffeffffffffffff0001n],
+ [0x10000000000000000n, 0xffffn, 0xffff0000000000000000n],
+ [0x10000000000000001n, 0xffffn, 0xffff000000000000ffffn],
+ [-0x10000000000000001n, 0x10000n, -0x100000000000000010000n],
+ [-0x10000000000000000n, 0x10000n, -0x100000000000000000000n],
+ [-0xffffffffffffffffn, 0x10000n, -0xffffffffffffffff0000n],
+ [-0xfffffffffffffffen, 0x10000n, -0xfffffffffffffffe0000n],
+ [-0x8000000000000001n, 0x10000n, -0x80000000000000010000n],
+ [-0x8000000000000000n, 0x10000n, -0x80000000000000000000n],
+ [-0x7fffffffffffffffn, 0x10000n, -0x7fffffffffffffff0000n],
+ [-0x7ffffffffffffffen, 0x10000n, -0x7ffffffffffffffe0000n],
+ [-0x100000001n, 0x10000n, -0x1000000010000n],
+ [-0x100000000n, 0x10000n, -0x1000000000000n],
+ [-0xffffffffn, 0x10000n, -0xffffffff0000n],
+ [-0xfffffffen, 0x10000n, -0xfffffffe0000n],
+ [-0x80000001n, 0x10000n, -0x800000010000n],
+ [-0x80000000n, 0x10000n, -0x800000000000n],
+ [-0x7fffffffn, 0x10000n, -0x7fffffff0000n],
+ [-0x7ffffffen, 0x10000n, -0x7ffffffe0000n],
+ [-0x10001n, 0x10000n, -0x100010000n],
+ [-0x10000n, 0x10000n, -0x100000000n],
+ [-0xffffn, 0x10000n, -0xffff0000n],
+ [-0xfffen, 0x10000n, -0xfffe0000n],
+ [0x10000n, 0x10000n, 0x100000000n],
+ [0x10001n, 0x10000n, 0x100010000n],
+ [0x7ffffffen, 0x10000n, 0x7ffffffe0000n],
+ [0x7fffffffn, 0x10000n, 0x7fffffff0000n],
+ [0x80000000n, 0x10000n, 0x800000000000n],
+ [0x80000001n, 0x10000n, 0x800000010000n],
+ [0xfffffffen, 0x10000n, 0xfffffffe0000n],
+ [0xffffffffn, 0x10000n, 0xffffffff0000n],
+ [0x100000000n, 0x10000n, 0x1000000000000n],
+ [0x100000001n, 0x10000n, 0x1000000010000n],
+ [0x7ffffffffffffffen, 0x10000n, 0x7ffffffffffffffe0000n],
+ [0x7fffffffffffffffn, 0x10000n, 0x7fffffffffffffff0000n],
+ [0x8000000000000000n, 0x10000n, 0x80000000000000000000n],
+ [0x8000000000000001n, 0x10000n, 0x80000000000000010000n],
+ [0xfffffffffffffffen, 0x10000n, 0xfffffffffffffffe0000n],
+ [0xffffffffffffffffn, 0x10000n, 0xffffffffffffffff0000n],
+ [0x10000000000000000n, 0x10000n, 0x100000000000000000000n],
+ [0x10000000000000001n, 0x10000n, 0x100000000000000010000n],
+ [-0x10000000000000001n, 0x10001n, -0x100010000000000010001n],
+ [-0x10000000000000000n, 0x10001n, -0x100010000000000000000n],
+ [-0xffffffffffffffffn, 0x10001n, -0x10000fffffffffffeffffn],
+ [-0xfffffffffffffffen, 0x10001n, -0x10000fffffffffffdfffen],
+ [-0x8000000000000001n, 0x10001n, -0x80008000000000010001n],
+ [-0x8000000000000000n, 0x10001n, -0x80008000000000000000n],
+ [-0x7fffffffffffffffn, 0x10001n, -0x80007ffffffffffeffffn],
+ [-0x7ffffffffffffffen, 0x10001n, -0x80007ffffffffffdfffen],
+ [-0x100000001n, 0x10001n, -0x1000100010001n],
+ [-0x100000000n, 0x10001n, -0x1000100000000n],
+ [-0xffffffffn, 0x10001n, -0x10000fffeffffn],
+ [-0xfffffffen, 0x10001n, -0x10000fffdfffen],
+ [-0x80000001n, 0x10001n, -0x800080010001n],
+ [-0x80000000n, 0x10001n, -0x800080000000n],
+ [-0x7fffffffn, 0x10001n, -0x80007ffeffffn],
+ [-0x7ffffffen, 0x10001n, -0x80007ffdfffen],
+ [-0x10001n, 0x10001n, -0x100020001n],
+ [-0x10000n, 0x10001n, -0x100010000n],
+ [-0xffffn, 0x10001n, -0xffffffffn],
+ [-0xfffen, 0x10001n, -0xfffefffen],
+ [0x10001n, 0x10001n, 0x100020001n],
+ [0x7ffffffen, 0x10001n, 0x80007ffdfffen],
+ [0x7fffffffn, 0x10001n, 0x80007ffeffffn],
+ [0x80000000n, 0x10001n, 0x800080000000n],
+ [0x80000001n, 0x10001n, 0x800080010001n],
+ [0xfffffffen, 0x10001n, 0x10000fffdfffen],
+ [0xffffffffn, 0x10001n, 0x10000fffeffffn],
+ [0x100000000n, 0x10001n, 0x1000100000000n],
+ [0x100000001n, 0x10001n, 0x1000100010001n],
+ [0x7ffffffffffffffen, 0x10001n, 0x80007ffffffffffdfffen],
+ [0x7fffffffffffffffn, 0x10001n, 0x80007ffffffffffeffffn],
+ [0x8000000000000000n, 0x10001n, 0x80008000000000000000n],
+ [0x8000000000000001n, 0x10001n, 0x80008000000000010001n],
+ [0xfffffffffffffffen, 0x10001n, 0x10000fffffffffffdfffen],
+ [0xffffffffffffffffn, 0x10001n, 0x10000fffffffffffeffffn],
+ [0x10000000000000000n, 0x10001n, 0x100010000000000000000n],
+ [0x10000000000000001n, 0x10001n, 0x100010000000000010001n],
+ [-0x10000000000000001n, -0x10001n, 0x100010000000000010001n],
+ [-0x10000000000000000n, -0x10001n, 0x100010000000000000000n],
+ [-0xffffffffffffffffn, -0x10001n, 0x10000fffffffffffeffffn],
+ [-0xfffffffffffffffen, -0x10001n, 0x10000fffffffffffdfffen],
+ [-0x8000000000000001n, -0x10001n, 0x80008000000000010001n],
+ [-0x8000000000000000n, -0x10001n, 0x80008000000000000000n],
+ [-0x7fffffffffffffffn, -0x10001n, 0x80007ffffffffffeffffn],
+ [-0x7ffffffffffffffen, -0x10001n, 0x80007ffffffffffdfffen],
+ [-0x100000001n, -0x10001n, 0x1000100010001n],
+ [-0x100000000n, -0x10001n, 0x1000100000000n],
+ [-0xffffffffn, -0x10001n, 0x10000fffeffffn],
+ [-0xfffffffen, -0x10001n, 0x10000fffdfffen],
+ [-0x80000001n, -0x10001n, 0x800080010001n],
+ [-0x80000000n, -0x10001n, 0x800080000000n],
+ [-0x7fffffffn, -0x10001n, 0x80007ffeffffn],
+ [-0x7ffffffen, -0x10001n, 0x80007ffdfffen],
+ [-0x10001n, -0x10001n, 0x100020001n],
+ [-0x10000n, -0x10001n, 0x100010000n],
+ [-0xffffn, -0x10001n, 0xffffffffn],
+ [-0xfffen, -0x10001n, 0xfffefffen],
+ [0x7ffffffen, -0x10001n, -0x80007ffdfffen],
+ [0x7fffffffn, -0x10001n, -0x80007ffeffffn],
+ [0x80000000n, -0x10001n, -0x800080000000n],
+ [0x80000001n, -0x10001n, -0x800080010001n],
+ [0xfffffffen, -0x10001n, -0x10000fffdfffen],
+ [0xffffffffn, -0x10001n, -0x10000fffeffffn],
+ [0x100000000n, -0x10001n, -0x1000100000000n],
+ [0x100000001n, -0x10001n, -0x1000100010001n],
+ [0x7ffffffffffffffen, -0x10001n, -0x80007ffffffffffdfffen],
+ [0x7fffffffffffffffn, -0x10001n, -0x80007ffffffffffeffffn],
+ [0x8000000000000000n, -0x10001n, -0x80008000000000000000n],
+ [0x8000000000000001n, -0x10001n, -0x80008000000000010001n],
+ [0xfffffffffffffffen, -0x10001n, -0x10000fffffffffffdfffen],
+ [0xffffffffffffffffn, -0x10001n, -0x10000fffffffffffeffffn],
+ [0x10000000000000000n, -0x10001n, -0x100010000000000000000n],
+ [0x10000000000000001n, -0x10001n, -0x100010000000000010001n],
+ [-0x10000000000000001n, -0x10000n, 0x100000000000000010000n],
+ [-0x10000000000000000n, -0x10000n, 0x100000000000000000000n],
+ [-0xffffffffffffffffn, -0x10000n, 0xffffffffffffffff0000n],
+ [-0xfffffffffffffffen, -0x10000n, 0xfffffffffffffffe0000n],
+ [-0x8000000000000001n, -0x10000n, 0x80000000000000010000n],
+ [-0x8000000000000000n, -0x10000n, 0x80000000000000000000n],
+ [-0x7fffffffffffffffn, -0x10000n, 0x7fffffffffffffff0000n],
+ [-0x7ffffffffffffffen, -0x10000n, 0x7ffffffffffffffe0000n],
+ [-0x100000001n, -0x10000n, 0x1000000010000n],
+ [-0x100000000n, -0x10000n, 0x1000000000000n],
+ [-0xffffffffn, -0x10000n, 0xffffffff0000n],
+ [-0xfffffffen, -0x10000n, 0xfffffffe0000n],
+ [-0x80000001n, -0x10000n, 0x800000010000n],
+ [-0x80000000n, -0x10000n, 0x800000000000n],
+ [-0x7fffffffn, -0x10000n, 0x7fffffff0000n],
+ [-0x7ffffffen, -0x10000n, 0x7ffffffe0000n],
+ [-0x10000n, -0x10000n, 0x100000000n],
+ [-0xffffn, -0x10000n, 0xffff0000n],
+ [-0xfffen, -0x10000n, 0xfffe0000n],
+ [0x7ffffffen, -0x10000n, -0x7ffffffe0000n],
+ [0x7fffffffn, -0x10000n, -0x7fffffff0000n],
+ [0x80000000n, -0x10000n, -0x800000000000n],
+ [0x80000001n, -0x10000n, -0x800000010000n],
+ [0xfffffffen, -0x10000n, -0xfffffffe0000n],
+ [0xffffffffn, -0x10000n, -0xffffffff0000n],
+ [0x100000000n, -0x10000n, -0x1000000000000n],
+ [0x100000001n, -0x10000n, -0x1000000010000n],
+ [0x7ffffffffffffffen, -0x10000n, -0x7ffffffffffffffe0000n],
+ [0x7fffffffffffffffn, -0x10000n, -0x7fffffffffffffff0000n],
+ [0x8000000000000000n, -0x10000n, -0x80000000000000000000n],
+ [0x8000000000000001n, -0x10000n, -0x80000000000000010000n],
+ [0xfffffffffffffffen, -0x10000n, -0xfffffffffffffffe0000n],
+ [0xffffffffffffffffn, -0x10000n, -0xffffffffffffffff0000n],
+ [0x10000000000000000n, -0x10000n, -0x100000000000000000000n],
+ [0x10000000000000001n, -0x10000n, -0x100000000000000010000n],
+ [-0x10000000000000001n, -0xffffn, 0xffff000000000000ffffn],
+ [-0x10000000000000000n, -0xffffn, 0xffff0000000000000000n],
+ [-0xffffffffffffffffn, -0xffffn, 0xfffeffffffffffff0001n],
+ [-0xfffffffffffffffen, -0xffffn, 0xfffefffffffffffe0002n],
+ [-0x8000000000000001n, -0xffffn, 0x7fff800000000000ffffn],
+ [-0x8000000000000000n, -0xffffn, 0x7fff8000000000000000n],
+ [-0x7fffffffffffffffn, -0xffffn, 0x7fff7fffffffffff0001n],
+ [-0x7ffffffffffffffen, -0xffffn, 0x7fff7ffffffffffe0002n],
+ [-0x100000001n, -0xffffn, 0xffff0000ffffn],
+ [-0x100000000n, -0xffffn, 0xffff00000000n],
+ [-0xffffffffn, -0xffffn, 0xfffeffff0001n],
+ [-0xfffffffen, -0xffffn, 0xfffefffe0002n],
+ [-0x80000001n, -0xffffn, 0x7fff8000ffffn],
+ [-0x80000000n, -0xffffn, 0x7fff80000000n],
+ [-0x7fffffffn, -0xffffn, 0x7fff7fff0001n],
+ [-0x7ffffffen, -0xffffn, 0x7fff7ffe0002n],
+ [-0xffffn, -0xffffn, 0xfffe0001n],
+ [-0xfffen, -0xffffn, 0xfffd0002n],
+ [0x7ffffffen, -0xffffn, -0x7fff7ffe0002n],
+ [0x7fffffffn, -0xffffn, -0x7fff7fff0001n],
+ [0x80000000n, -0xffffn, -0x7fff80000000n],
+ [0x80000001n, -0xffffn, -0x7fff8000ffffn],
+ [0xfffffffen, -0xffffn, -0xfffefffe0002n],
+ [0xffffffffn, -0xffffn, -0xfffeffff0001n],
+ [0x100000000n, -0xffffn, -0xffff00000000n],
+ [0x100000001n, -0xffffn, -0xffff0000ffffn],
+ [0x7ffffffffffffffen, -0xffffn, -0x7fff7ffffffffffe0002n],
+ [0x7fffffffffffffffn, -0xffffn, -0x7fff7fffffffffff0001n],
+ [0x8000000000000000n, -0xffffn, -0x7fff8000000000000000n],
+ [0x8000000000000001n, -0xffffn, -0x7fff800000000000ffffn],
+ [0xfffffffffffffffen, -0xffffn, -0xfffefffffffffffe0002n],
+ [0xffffffffffffffffn, -0xffffn, -0xfffeffffffffffff0001n],
+ [0x10000000000000000n, -0xffffn, -0xffff0000000000000000n],
+ [0x10000000000000001n, -0xffffn, -0xffff000000000000ffffn],
+ [-0x10000000000000001n, -0xfffen, 0xfffe000000000000fffen],
+ [-0x10000000000000000n, -0xfffen, 0xfffe0000000000000000n],
+ [-0xffffffffffffffffn, -0xfffen, 0xfffdffffffffffff0002n],
+ [-0xfffffffffffffffen, -0xfffen, 0xfffdfffffffffffe0004n],
+ [-0x8000000000000001n, -0xfffen, 0x7fff000000000000fffen],
+ [-0x8000000000000000n, -0xfffen, 0x7fff0000000000000000n],
+ [-0x7fffffffffffffffn, -0xfffen, 0x7ffeffffffffffff0002n],
+ [-0x7ffffffffffffffen, -0xfffen, 0x7ffefffffffffffe0004n],
+ [-0x100000001n, -0xfffen, 0xfffe0000fffen],
+ [-0x100000000n, -0xfffen, 0xfffe00000000n],
+ [-0xffffffffn, -0xfffen, 0xfffdffff0002n],
+ [-0xfffffffen, -0xfffen, 0xfffdfffe0004n],
+ [-0x80000001n, -0xfffen, 0x7fff0000fffen],
+ [-0x80000000n, -0xfffen, 0x7fff00000000n],
+ [-0x7fffffffn, -0xfffen, 0x7ffeffff0002n],
+ [-0x7ffffffen, -0xfffen, 0x7ffefffe0004n],
+ [-0xfffen, -0xfffen, 0xfffc0004n],
+ [0x7ffffffen, -0xfffen, -0x7ffefffe0004n],
+ [0x7fffffffn, -0xfffen, -0x7ffeffff0002n],
+ [0x80000000n, -0xfffen, -0x7fff00000000n],
+ [0x80000001n, -0xfffen, -0x7fff0000fffen],
+ [0xfffffffen, -0xfffen, -0xfffdfffe0004n],
+ [0xffffffffn, -0xfffen, -0xfffdffff0002n],
+ [0x100000000n, -0xfffen, -0xfffe00000000n],
+ [0x100000001n, -0xfffen, -0xfffe0000fffen],
+ [0x7ffffffffffffffen, -0xfffen, -0x7ffefffffffffffe0004n],
+ [0x7fffffffffffffffn, -0xfffen, -0x7ffeffffffffffff0002n],
+ [0x8000000000000000n, -0xfffen, -0x7fff0000000000000000n],
+ [0x8000000000000001n, -0xfffen, -0x7fff000000000000fffen],
+ [0xfffffffffffffffen, -0xfffen, -0xfffdfffffffffffe0004n],
+ [0xffffffffffffffffn, -0xfffen, -0xfffdffffffffffff0002n],
+ [0x10000000000000000n, -0xfffen, -0xfffe0000000000000000n],
+ [0x10000000000000001n, -0xfffen, -0xfffe000000000000fffen],
+ [-0x10000000000000001n, 0x7ffffffen, -0x7ffffffe000000007ffffffen],
+ [-0x10000000000000000n, 0x7ffffffen, -0x7ffffffe0000000000000000n],
+ [-0xffffffffffffffffn, 0x7ffffffen, -0x7ffffffdffffffff80000002n],
+ [-0xfffffffffffffffen, 0x7ffffffen, -0x7ffffffdffffffff00000004n],
+ [-0x8000000000000001n, 0x7ffffffen, -0x3fffffff000000007ffffffen],
+ [-0x8000000000000000n, 0x7ffffffen, -0x3fffffff0000000000000000n],
+ [-0x7fffffffffffffffn, 0x7ffffffen, -0x3ffffffeffffffff80000002n],
+ [-0x7ffffffffffffffen, 0x7ffffffen, -0x3ffffffeffffffff00000004n],
+ [-0x100000001n, 0x7ffffffen, -0x7ffffffe7ffffffen],
+ [-0x100000000n, 0x7ffffffen, -0x7ffffffe00000000n],
+ [-0xffffffffn, 0x7ffffffen, -0x7ffffffd80000002n],
+ [-0xfffffffen, 0x7ffffffen, -0x7ffffffd00000004n],
+ [-0x80000001n, 0x7ffffffen, -0x3fffffff7ffffffen],
+ [-0x80000000n, 0x7ffffffen, -0x3fffffff00000000n],
+ [-0x7fffffffn, 0x7ffffffen, -0x3ffffffe80000002n],
+ [-0x7ffffffen, 0x7ffffffen, -0x3ffffffe00000004n],
+ [0x7ffffffen, 0x7ffffffen, 0x3ffffffe00000004n],
+ [0x7fffffffn, 0x7ffffffen, 0x3ffffffe80000002n],
+ [0x80000000n, 0x7ffffffen, 0x3fffffff00000000n],
+ [0x80000001n, 0x7ffffffen, 0x3fffffff7ffffffen],
+ [0xfffffffen, 0x7ffffffen, 0x7ffffffd00000004n],
+ [0xffffffffn, 0x7ffffffen, 0x7ffffffd80000002n],
+ [0x100000000n, 0x7ffffffen, 0x7ffffffe00000000n],
+ [0x100000001n, 0x7ffffffen, 0x7ffffffe7ffffffen],
+ [0x7ffffffffffffffen, 0x7ffffffen, 0x3ffffffeffffffff00000004n],
+ [0x7fffffffffffffffn, 0x7ffffffen, 0x3ffffffeffffffff80000002n],
+ [0x8000000000000000n, 0x7ffffffen, 0x3fffffff0000000000000000n],
+ [0x8000000000000001n, 0x7ffffffen, 0x3fffffff000000007ffffffen],
+ [0xfffffffffffffffen, 0x7ffffffen, 0x7ffffffdffffffff00000004n],
+ [0xffffffffffffffffn, 0x7ffffffen, 0x7ffffffdffffffff80000002n],
+ [0x10000000000000000n, 0x7ffffffen, 0x7ffffffe0000000000000000n],
+ [0x10000000000000001n, 0x7ffffffen, 0x7ffffffe000000007ffffffen],
+ [-0x10000000000000001n, 0x7fffffffn, -0x7fffffff000000007fffffffn],
+ [-0x10000000000000000n, 0x7fffffffn, -0x7fffffff0000000000000000n],
+ [-0xffffffffffffffffn, 0x7fffffffn, -0x7ffffffeffffffff80000001n],
+ [-0xfffffffffffffffen, 0x7fffffffn, -0x7ffffffeffffffff00000002n],
+ [-0x8000000000000001n, 0x7fffffffn, -0x3fffffff800000007fffffffn],
+ [-0x8000000000000000n, 0x7fffffffn, -0x3fffffff8000000000000000n],
+ [-0x7fffffffffffffffn, 0x7fffffffn, -0x3fffffff7fffffff80000001n],
+ [-0x7ffffffffffffffen, 0x7fffffffn, -0x3fffffff7fffffff00000002n],
+ [-0x100000001n, 0x7fffffffn, -0x7fffffff7fffffffn],
+ [-0x100000000n, 0x7fffffffn, -0x7fffffff00000000n],
+ [-0xffffffffn, 0x7fffffffn, -0x7ffffffe80000001n],
+ [-0xfffffffen, 0x7fffffffn, -0x7ffffffe00000002n],
+ [-0x80000001n, 0x7fffffffn, -0x3fffffffffffffffn],
+ [-0x80000000n, 0x7fffffffn, -0x3fffffff80000000n],
+ [-0x7fffffffn, 0x7fffffffn, -0x3fffffff00000001n],
+ [-0x7ffffffen, 0x7fffffffn, -0x3ffffffe80000002n],
+ [0x7fffffffn, 0x7fffffffn, 0x3fffffff00000001n],
+ [0x80000000n, 0x7fffffffn, 0x3fffffff80000000n],
+ [0x80000001n, 0x7fffffffn, 0x3fffffffffffffffn],
+ [0xfffffffen, 0x7fffffffn, 0x7ffffffe00000002n],
+ [0xffffffffn, 0x7fffffffn, 0x7ffffffe80000001n],
+ [0x100000000n, 0x7fffffffn, 0x7fffffff00000000n],
+ [0x100000001n, 0x7fffffffn, 0x7fffffff7fffffffn],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0x3fffffff7fffffff00000002n],
+ [0x7fffffffffffffffn, 0x7fffffffn, 0x3fffffff7fffffff80000001n],
+ [0x8000000000000000n, 0x7fffffffn, 0x3fffffff8000000000000000n],
+ [0x8000000000000001n, 0x7fffffffn, 0x3fffffff800000007fffffffn],
+ [0xfffffffffffffffen, 0x7fffffffn, 0x7ffffffeffffffff00000002n],
+ [0xffffffffffffffffn, 0x7fffffffn, 0x7ffffffeffffffff80000001n],
+ [0x10000000000000000n, 0x7fffffffn, 0x7fffffff0000000000000000n],
+ [0x10000000000000001n, 0x7fffffffn, 0x7fffffff000000007fffffffn],
+ [-0x10000000000000001n, 0x80000000n, -0x800000000000000080000000n],
+ [-0x10000000000000000n, 0x80000000n, -0x800000000000000000000000n],
+ [-0xffffffffffffffffn, 0x80000000n, -0x7fffffffffffffff80000000n],
+ [-0xfffffffffffffffen, 0x80000000n, -0x7fffffffffffffff00000000n],
+ [-0x8000000000000001n, 0x80000000n, -0x400000000000000080000000n],
+ [-0x8000000000000000n, 0x80000000n, -0x400000000000000000000000n],
+ [-0x7fffffffffffffffn, 0x80000000n, -0x3fffffffffffffff80000000n],
+ [-0x7ffffffffffffffen, 0x80000000n, -0x3fffffffffffffff00000000n],
+ [-0x100000001n, 0x80000000n, -0x8000000080000000n],
+ [-0x100000000n, 0x80000000n, -0x8000000000000000n],
+ [-0xffffffffn, 0x80000000n, -0x7fffffff80000000n],
+ [-0xfffffffen, 0x80000000n, -0x7fffffff00000000n],
+ [-0x80000001n, 0x80000000n, -0x4000000080000000n],
+ [-0x80000000n, 0x80000000n, -0x4000000000000000n],
+ [-0x7fffffffn, 0x80000000n, -0x3fffffff80000000n],
+ [-0x7ffffffen, 0x80000000n, -0x3fffffff00000000n],
+ [0x80000000n, 0x80000000n, 0x4000000000000000n],
+ [0x80000001n, 0x80000000n, 0x4000000080000000n],
+ [0xfffffffen, 0x80000000n, 0x7fffffff00000000n],
+ [0xffffffffn, 0x80000000n, 0x7fffffff80000000n],
+ [0x100000000n, 0x80000000n, 0x8000000000000000n],
+ [0x100000001n, 0x80000000n, 0x8000000080000000n],
+ [0x7ffffffffffffffen, 0x80000000n, 0x3fffffffffffffff00000000n],
+ [0x7fffffffffffffffn, 0x80000000n, 0x3fffffffffffffff80000000n],
+ [0x8000000000000000n, 0x80000000n, 0x400000000000000000000000n],
+ [0x8000000000000001n, 0x80000000n, 0x400000000000000080000000n],
+ [0xfffffffffffffffen, 0x80000000n, 0x7fffffffffffffff00000000n],
+ [0xffffffffffffffffn, 0x80000000n, 0x7fffffffffffffff80000000n],
+ [0x10000000000000000n, 0x80000000n, 0x800000000000000000000000n],
+ [0x10000000000000001n, 0x80000000n, 0x800000000000000080000000n],
+ [-0x10000000000000001n, 0x80000001n, -0x800000010000000080000001n],
+ [-0x10000000000000000n, 0x80000001n, -0x800000010000000000000000n],
+ [-0xffffffffffffffffn, 0x80000001n, -0x80000000ffffffff7fffffffn],
+ [-0xfffffffffffffffen, 0x80000001n, -0x80000000fffffffefffffffen],
+ [-0x8000000000000001n, 0x80000001n, -0x400000008000000080000001n],
+ [-0x8000000000000000n, 0x80000001n, -0x400000008000000000000000n],
+ [-0x7fffffffffffffffn, 0x80000001n, -0x400000007fffffff7fffffffn],
+ [-0x7ffffffffffffffen, 0x80000001n, -0x400000007ffffffefffffffen],
+ [-0x100000001n, 0x80000001n, -0x8000000180000001n],
+ [-0x100000000n, 0x80000001n, -0x8000000100000000n],
+ [-0xffffffffn, 0x80000001n, -0x800000007fffffffn],
+ [-0xfffffffen, 0x80000001n, -0x7ffffffffffffffen],
+ [-0x80000001n, 0x80000001n, -0x4000000100000001n],
+ [-0x80000000n, 0x80000001n, -0x4000000080000000n],
+ [-0x7fffffffn, 0x80000001n, -0x3fffffffffffffffn],
+ [-0x7ffffffen, 0x80000001n, -0x3fffffff7ffffffen],
+ [0x80000001n, 0x80000001n, 0x4000000100000001n],
+ [0xfffffffen, 0x80000001n, 0x7ffffffffffffffen],
+ [0xffffffffn, 0x80000001n, 0x800000007fffffffn],
+ [0x100000000n, 0x80000001n, 0x8000000100000000n],
+ [0x100000001n, 0x80000001n, 0x8000000180000001n],
+ [0x7ffffffffffffffen, 0x80000001n, 0x400000007ffffffefffffffen],
+ [0x7fffffffffffffffn, 0x80000001n, 0x400000007fffffff7fffffffn],
+ [0x8000000000000000n, 0x80000001n, 0x400000008000000000000000n],
+ [0x8000000000000001n, 0x80000001n, 0x400000008000000080000001n],
+ [0xfffffffffffffffen, 0x80000001n, 0x80000000fffffffefffffffen],
+ [0xffffffffffffffffn, 0x80000001n, 0x80000000ffffffff7fffffffn],
+ [0x10000000000000000n, 0x80000001n, 0x800000010000000000000000n],
+ [0x10000000000000001n, 0x80000001n, 0x800000010000000080000001n],
+ [-0x10000000000000001n, -0x80000001n, 0x800000010000000080000001n],
+ [-0x10000000000000000n, -0x80000001n, 0x800000010000000000000000n],
+ [-0xffffffffffffffffn, -0x80000001n, 0x80000000ffffffff7fffffffn],
+ [-0xfffffffffffffffen, -0x80000001n, 0x80000000fffffffefffffffen],
+ [-0x8000000000000001n, -0x80000001n, 0x400000008000000080000001n],
+ [-0x8000000000000000n, -0x80000001n, 0x400000008000000000000000n],
+ [-0x7fffffffffffffffn, -0x80000001n, 0x400000007fffffff7fffffffn],
+ [-0x7ffffffffffffffen, -0x80000001n, 0x400000007ffffffefffffffen],
+ [-0x100000001n, -0x80000001n, 0x8000000180000001n],
+ [-0x100000000n, -0x80000001n, 0x8000000100000000n],
+ [-0xffffffffn, -0x80000001n, 0x800000007fffffffn],
+ [-0xfffffffen, -0x80000001n, 0x7ffffffffffffffen],
+ [-0x80000001n, -0x80000001n, 0x4000000100000001n],
+ [-0x80000000n, -0x80000001n, 0x4000000080000000n],
+ [-0x7fffffffn, -0x80000001n, 0x3fffffffffffffffn],
+ [-0x7ffffffen, -0x80000001n, 0x3fffffff7ffffffen],
+ [0xfffffffen, -0x80000001n, -0x7ffffffffffffffen],
+ [0xffffffffn, -0x80000001n, -0x800000007fffffffn],
+ [0x100000000n, -0x80000001n, -0x8000000100000000n],
+ [0x100000001n, -0x80000001n, -0x8000000180000001n],
+ [0x7ffffffffffffffen, -0x80000001n, -0x400000007ffffffefffffffen],
+ [0x7fffffffffffffffn, -0x80000001n, -0x400000007fffffff7fffffffn],
+ [0x8000000000000000n, -0x80000001n, -0x400000008000000000000000n],
+ [0x8000000000000001n, -0x80000001n, -0x400000008000000080000001n],
+ [0xfffffffffffffffen, -0x80000001n, -0x80000000fffffffefffffffen],
+ [0xffffffffffffffffn, -0x80000001n, -0x80000000ffffffff7fffffffn],
+ [0x10000000000000000n, -0x80000001n, -0x800000010000000000000000n],
+ [0x10000000000000001n, -0x80000001n, -0x800000010000000080000001n],
+ [-0x10000000000000001n, -0x80000000n, 0x800000000000000080000000n],
+ [-0x10000000000000000n, -0x80000000n, 0x800000000000000000000000n],
+ [-0xffffffffffffffffn, -0x80000000n, 0x7fffffffffffffff80000000n],
+ [-0xfffffffffffffffen, -0x80000000n, 0x7fffffffffffffff00000000n],
+ [-0x8000000000000001n, -0x80000000n, 0x400000000000000080000000n],
+ [-0x8000000000000000n, -0x80000000n, 0x400000000000000000000000n],
+ [-0x7fffffffffffffffn, -0x80000000n, 0x3fffffffffffffff80000000n],
+ [-0x7ffffffffffffffen, -0x80000000n, 0x3fffffffffffffff00000000n],
+ [-0x100000001n, -0x80000000n, 0x8000000080000000n],
+ [-0x100000000n, -0x80000000n, 0x8000000000000000n],
+ [-0xffffffffn, -0x80000000n, 0x7fffffff80000000n],
+ [-0xfffffffen, -0x80000000n, 0x7fffffff00000000n],
+ [-0x80000000n, -0x80000000n, 0x4000000000000000n],
+ [-0x7fffffffn, -0x80000000n, 0x3fffffff80000000n],
+ [-0x7ffffffen, -0x80000000n, 0x3fffffff00000000n],
+ [0xfffffffen, -0x80000000n, -0x7fffffff00000000n],
+ [0xffffffffn, -0x80000000n, -0x7fffffff80000000n],
+ [0x100000000n, -0x80000000n, -0x8000000000000000n],
+ [0x100000001n, -0x80000000n, -0x8000000080000000n],
+ [0x7ffffffffffffffen, -0x80000000n, -0x3fffffffffffffff00000000n],
+ [0x7fffffffffffffffn, -0x80000000n, -0x3fffffffffffffff80000000n],
+ [0x8000000000000000n, -0x80000000n, -0x400000000000000000000000n],
+ [0x8000000000000001n, -0x80000000n, -0x400000000000000080000000n],
+ [0xfffffffffffffffen, -0x80000000n, -0x7fffffffffffffff00000000n],
+ [0xffffffffffffffffn, -0x80000000n, -0x7fffffffffffffff80000000n],
+ [0x10000000000000000n, -0x80000000n, -0x800000000000000000000000n],
+ [0x10000000000000001n, -0x80000000n, -0x800000000000000080000000n],
+ [-0x10000000000000001n, -0x7fffffffn, 0x7fffffff000000007fffffffn],
+ [-0x10000000000000000n, -0x7fffffffn, 0x7fffffff0000000000000000n],
+ [-0xffffffffffffffffn, -0x7fffffffn, 0x7ffffffeffffffff80000001n],
+ [-0xfffffffffffffffen, -0x7fffffffn, 0x7ffffffeffffffff00000002n],
+ [-0x8000000000000001n, -0x7fffffffn, 0x3fffffff800000007fffffffn],
+ [-0x8000000000000000n, -0x7fffffffn, 0x3fffffff8000000000000000n],
+ [-0x7fffffffffffffffn, -0x7fffffffn, 0x3fffffff7fffffff80000001n],
+ [-0x7ffffffffffffffen, -0x7fffffffn, 0x3fffffff7fffffff00000002n],
+ [-0x100000001n, -0x7fffffffn, 0x7fffffff7fffffffn],
+ [-0x100000000n, -0x7fffffffn, 0x7fffffff00000000n],
+ [-0xffffffffn, -0x7fffffffn, 0x7ffffffe80000001n],
+ [-0xfffffffen, -0x7fffffffn, 0x7ffffffe00000002n],
+ [-0x7fffffffn, -0x7fffffffn, 0x3fffffff00000001n],
+ [-0x7ffffffen, -0x7fffffffn, 0x3ffffffe80000002n],
+ [0xfffffffen, -0x7fffffffn, -0x7ffffffe00000002n],
+ [0xffffffffn, -0x7fffffffn, -0x7ffffffe80000001n],
+ [0x100000000n, -0x7fffffffn, -0x7fffffff00000000n],
+ [0x100000001n, -0x7fffffffn, -0x7fffffff7fffffffn],
+ [0x7ffffffffffffffen, -0x7fffffffn, -0x3fffffff7fffffff00000002n],
+ [0x7fffffffffffffffn, -0x7fffffffn, -0x3fffffff7fffffff80000001n],
+ [0x8000000000000000n, -0x7fffffffn, -0x3fffffff8000000000000000n],
+ [0x8000000000000001n, -0x7fffffffn, -0x3fffffff800000007fffffffn],
+ [0xfffffffffffffffen, -0x7fffffffn, -0x7ffffffeffffffff00000002n],
+ [0xffffffffffffffffn, -0x7fffffffn, -0x7ffffffeffffffff80000001n],
+ [0x10000000000000000n, -0x7fffffffn, -0x7fffffff0000000000000000n],
+ [0x10000000000000001n, -0x7fffffffn, -0x7fffffff000000007fffffffn],
+ [-0x10000000000000001n, -0x7ffffffen, 0x7ffffffe000000007ffffffen],
+ [-0x10000000000000000n, -0x7ffffffen, 0x7ffffffe0000000000000000n],
+ [-0xffffffffffffffffn, -0x7ffffffen, 0x7ffffffdffffffff80000002n],
+ [-0xfffffffffffffffen, -0x7ffffffen, 0x7ffffffdffffffff00000004n],
+ [-0x8000000000000001n, -0x7ffffffen, 0x3fffffff000000007ffffffen],
+ [-0x8000000000000000n, -0x7ffffffen, 0x3fffffff0000000000000000n],
+ [-0x7fffffffffffffffn, -0x7ffffffen, 0x3ffffffeffffffff80000002n],
+ [-0x7ffffffffffffffen, -0x7ffffffen, 0x3ffffffeffffffff00000004n],
+ [-0x100000001n, -0x7ffffffen, 0x7ffffffe7ffffffen],
+ [-0x100000000n, -0x7ffffffen, 0x7ffffffe00000000n],
+ [-0xffffffffn, -0x7ffffffen, 0x7ffffffd80000002n],
+ [-0xfffffffen, -0x7ffffffen, 0x7ffffffd00000004n],
+ [-0x7ffffffen, -0x7ffffffen, 0x3ffffffe00000004n],
+ [0xfffffffen, -0x7ffffffen, -0x7ffffffd00000004n],
+ [0xffffffffn, -0x7ffffffen, -0x7ffffffd80000002n],
+ [0x100000000n, -0x7ffffffen, -0x7ffffffe00000000n],
+ [0x100000001n, -0x7ffffffen, -0x7ffffffe7ffffffen],
+ [0x7ffffffffffffffen, -0x7ffffffen, -0x3ffffffeffffffff00000004n],
+ [0x7fffffffffffffffn, -0x7ffffffen, -0x3ffffffeffffffff80000002n],
+ [0x8000000000000000n, -0x7ffffffen, -0x3fffffff0000000000000000n],
+ [0x8000000000000001n, -0x7ffffffen, -0x3fffffff000000007ffffffen],
+ [0xfffffffffffffffen, -0x7ffffffen, -0x7ffffffdffffffff00000004n],
+ [0xffffffffffffffffn, -0x7ffffffen, -0x7ffffffdffffffff80000002n],
+ [0x10000000000000000n, -0x7ffffffen, -0x7ffffffe0000000000000000n],
+ [0x10000000000000001n, -0x7ffffffen, -0x7ffffffe000000007ffffffen],
+ [-0x10000000000000001n, 0xfffffffen, -0xfffffffe00000000fffffffen],
+ [-0x10000000000000000n, 0xfffffffen, -0xfffffffe0000000000000000n],
+ [-0xffffffffffffffffn, 0xfffffffen, -0xfffffffdffffffff00000002n],
+ [-0xfffffffffffffffen, 0xfffffffen, -0xfffffffdfffffffe00000004n],
+ [-0x8000000000000001n, 0xfffffffen, -0x7fffffff00000000fffffffen],
+ [-0x8000000000000000n, 0xfffffffen, -0x7fffffff0000000000000000n],
+ [-0x7fffffffffffffffn, 0xfffffffen, -0x7ffffffeffffffff00000002n],
+ [-0x7ffffffffffffffen, 0xfffffffen, -0x7ffffffefffffffe00000004n],
+ [-0x100000001n, 0xfffffffen, -0xfffffffefffffffen],
+ [-0x100000000n, 0xfffffffen, -0xfffffffe00000000n],
+ [-0xffffffffn, 0xfffffffen, -0xfffffffd00000002n],
+ [-0xfffffffen, 0xfffffffen, -0xfffffffc00000004n],
+ [0xfffffffen, 0xfffffffen, 0xfffffffc00000004n],
+ [0xffffffffn, 0xfffffffen, 0xfffffffd00000002n],
+ [0x100000000n, 0xfffffffen, 0xfffffffe00000000n],
+ [0x100000001n, 0xfffffffen, 0xfffffffefffffffen],
+ [0x7ffffffffffffffen, 0xfffffffen, 0x7ffffffefffffffe00000004n],
+ [0x7fffffffffffffffn, 0xfffffffen, 0x7ffffffeffffffff00000002n],
+ [0x8000000000000000n, 0xfffffffen, 0x7fffffff0000000000000000n],
+ [0x8000000000000001n, 0xfffffffen, 0x7fffffff00000000fffffffen],
+ [0xfffffffffffffffen, 0xfffffffen, 0xfffffffdfffffffe00000004n],
+ [0xffffffffffffffffn, 0xfffffffen, 0xfffffffdffffffff00000002n],
+ [0x10000000000000000n, 0xfffffffen, 0xfffffffe0000000000000000n],
+ [0x10000000000000001n, 0xfffffffen, 0xfffffffe00000000fffffffen],
+ [-0x10000000000000001n, 0xffffffffn, -0xffffffff00000000ffffffffn],
+ [-0x10000000000000000n, 0xffffffffn, -0xffffffff0000000000000000n],
+ [-0xffffffffffffffffn, 0xffffffffn, -0xfffffffeffffffff00000001n],
+ [-0xfffffffffffffffen, 0xffffffffn, -0xfffffffefffffffe00000002n],
+ [-0x8000000000000001n, 0xffffffffn, -0x7fffffff80000000ffffffffn],
+ [-0x8000000000000000n, 0xffffffffn, -0x7fffffff8000000000000000n],
+ [-0x7fffffffffffffffn, 0xffffffffn, -0x7fffffff7fffffff00000001n],
+ [-0x7ffffffffffffffen, 0xffffffffn, -0x7fffffff7ffffffe00000002n],
+ [-0x100000001n, 0xffffffffn, -0xffffffffffffffffn],
+ [-0x100000000n, 0xffffffffn, -0xffffffff00000000n],
+ [-0xffffffffn, 0xffffffffn, -0xfffffffe00000001n],
+ [-0xfffffffen, 0xffffffffn, -0xfffffffd00000002n],
+ [0xffffffffn, 0xffffffffn, 0xfffffffe00000001n],
+ [0x100000000n, 0xffffffffn, 0xffffffff00000000n],
+ [0x100000001n, 0xffffffffn, 0xffffffffffffffffn],
+ [0x7ffffffffffffffen, 0xffffffffn, 0x7fffffff7ffffffe00000002n],
+ [0x7fffffffffffffffn, 0xffffffffn, 0x7fffffff7fffffff00000001n],
+ [0x8000000000000000n, 0xffffffffn, 0x7fffffff8000000000000000n],
+ [0x8000000000000001n, 0xffffffffn, 0x7fffffff80000000ffffffffn],
+ [0xfffffffffffffffen, 0xffffffffn, 0xfffffffefffffffe00000002n],
+ [0xffffffffffffffffn, 0xffffffffn, 0xfffffffeffffffff00000001n],
+ [0x10000000000000000n, 0xffffffffn, 0xffffffff0000000000000000n],
+ [0x10000000000000001n, 0xffffffffn, 0xffffffff00000000ffffffffn],
+ [-0x10000000000000001n, 0x100000000n, -0x1000000000000000100000000n],
+ [-0x10000000000000000n, 0x100000000n, -0x1000000000000000000000000n],
+ [-0xffffffffffffffffn, 0x100000000n, -0xffffffffffffffff00000000n],
+ [-0xfffffffffffffffen, 0x100000000n, -0xfffffffffffffffe00000000n],
+ [-0x8000000000000001n, 0x100000000n, -0x800000000000000100000000n],
+ [-0x8000000000000000n, 0x100000000n, -0x800000000000000000000000n],
+ [-0x7fffffffffffffffn, 0x100000000n, -0x7fffffffffffffff00000000n],
+ [-0x7ffffffffffffffen, 0x100000000n, -0x7ffffffffffffffe00000000n],
+ [-0x100000001n, 0x100000000n, -0x10000000100000000n],
+ [-0x100000000n, 0x100000000n, -0x10000000000000000n],
+ [-0xffffffffn, 0x100000000n, -0xffffffff00000000n],
+ [-0xfffffffen, 0x100000000n, -0xfffffffe00000000n],
+ [0x100000000n, 0x100000000n, 0x10000000000000000n],
+ [0x100000001n, 0x100000000n, 0x10000000100000000n],
+ [0x7ffffffffffffffen, 0x100000000n, 0x7ffffffffffffffe00000000n],
+ [0x7fffffffffffffffn, 0x100000000n, 0x7fffffffffffffff00000000n],
+ [0x8000000000000000n, 0x100000000n, 0x800000000000000000000000n],
+ [0x8000000000000001n, 0x100000000n, 0x800000000000000100000000n],
+ [0xfffffffffffffffen, 0x100000000n, 0xfffffffffffffffe00000000n],
+ [0xffffffffffffffffn, 0x100000000n, 0xffffffffffffffff00000000n],
+ [0x10000000000000000n, 0x100000000n, 0x1000000000000000000000000n],
+ [0x10000000000000001n, 0x100000000n, 0x1000000000000000100000000n],
+ [-0x10000000000000001n, 0x100000001n, -0x1000000010000000100000001n],
+ [-0x10000000000000000n, 0x100000001n, -0x1000000010000000000000000n],
+ [-0xffffffffffffffffn, 0x100000001n, -0x100000000fffffffeffffffffn],
+ [-0xfffffffffffffffen, 0x100000001n, -0x100000000fffffffdfffffffen],
+ [-0x8000000000000001n, 0x100000001n, -0x800000008000000100000001n],
+ [-0x8000000000000000n, 0x100000001n, -0x800000008000000000000000n],
+ [-0x7fffffffffffffffn, 0x100000001n, -0x800000007ffffffeffffffffn],
+ [-0x7ffffffffffffffen, 0x100000001n, -0x800000007ffffffdfffffffen],
+ [-0x100000001n, 0x100000001n, -0x10000000200000001n],
+ [-0x100000000n, 0x100000001n, -0x10000000100000000n],
+ [-0xffffffffn, 0x100000001n, -0xffffffffffffffffn],
+ [-0xfffffffen, 0x100000001n, -0xfffffffefffffffen],
+ [0x100000001n, 0x100000001n, 0x10000000200000001n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x800000007ffffffdfffffffen],
+ [0x7fffffffffffffffn, 0x100000001n, 0x800000007ffffffeffffffffn],
+ [0x8000000000000000n, 0x100000001n, 0x800000008000000000000000n],
+ [0x8000000000000001n, 0x100000001n, 0x800000008000000100000001n],
+ [0xfffffffffffffffen, 0x100000001n, 0x100000000fffffffdfffffffen],
+ [0xffffffffffffffffn, 0x100000001n, 0x100000000fffffffeffffffffn],
+ [0x10000000000000000n, 0x100000001n, 0x1000000010000000000000000n],
+ [0x10000000000000001n, 0x100000001n, 0x1000000010000000100000001n],
+ [-0x10000000000000001n, -0x100000001n, 0x1000000010000000100000001n],
+ [-0x10000000000000000n, -0x100000001n, 0x1000000010000000000000000n],
+ [-0xffffffffffffffffn, -0x100000001n, 0x100000000fffffffeffffffffn],
+ [-0xfffffffffffffffen, -0x100000001n, 0x100000000fffffffdfffffffen],
+ [-0x8000000000000001n, -0x100000001n, 0x800000008000000100000001n],
+ [-0x8000000000000000n, -0x100000001n, 0x800000008000000000000000n],
+ [-0x7fffffffffffffffn, -0x100000001n, 0x800000007ffffffeffffffffn],
+ [-0x7ffffffffffffffen, -0x100000001n, 0x800000007ffffffdfffffffen],
+ [-0x100000001n, -0x100000001n, 0x10000000200000001n],
+ [-0x100000000n, -0x100000001n, 0x10000000100000000n],
+ [-0xffffffffn, -0x100000001n, 0xffffffffffffffffn],
+ [-0xfffffffen, -0x100000001n, 0xfffffffefffffffen],
+ [0x7ffffffffffffffen, -0x100000001n, -0x800000007ffffffdfffffffen],
+ [0x7fffffffffffffffn, -0x100000001n, -0x800000007ffffffeffffffffn],
+ [0x8000000000000000n, -0x100000001n, -0x800000008000000000000000n],
+ [0x8000000000000001n, -0x100000001n, -0x800000008000000100000001n],
+ [0xfffffffffffffffen, -0x100000001n, -0x100000000fffffffdfffffffen],
+ [0xffffffffffffffffn, -0x100000001n, -0x100000000fffffffeffffffffn],
+ [0x10000000000000000n, -0x100000001n, -0x1000000010000000000000000n],
+ [0x10000000000000001n, -0x100000001n, -0x1000000010000000100000001n],
+ [-0x10000000000000001n, -0x100000000n, 0x1000000000000000100000000n],
+ [-0x10000000000000000n, -0x100000000n, 0x1000000000000000000000000n],
+ [-0xffffffffffffffffn, -0x100000000n, 0xffffffffffffffff00000000n],
+ [-0xfffffffffffffffen, -0x100000000n, 0xfffffffffffffffe00000000n],
+ [-0x8000000000000001n, -0x100000000n, 0x800000000000000100000000n],
+ [-0x8000000000000000n, -0x100000000n, 0x800000000000000000000000n],
+ [-0x7fffffffffffffffn, -0x100000000n, 0x7fffffffffffffff00000000n],
+ [-0x7ffffffffffffffen, -0x100000000n, 0x7ffffffffffffffe00000000n],
+ [-0x100000000n, -0x100000000n, 0x10000000000000000n],
+ [-0xffffffffn, -0x100000000n, 0xffffffff00000000n],
+ [-0xfffffffen, -0x100000000n, 0xfffffffe00000000n],
+ [0x7ffffffffffffffen, -0x100000000n, -0x7ffffffffffffffe00000000n],
+ [0x7fffffffffffffffn, -0x100000000n, -0x7fffffffffffffff00000000n],
+ [0x8000000000000000n, -0x100000000n, -0x800000000000000000000000n],
+ [0x8000000000000001n, -0x100000000n, -0x800000000000000100000000n],
+ [0xfffffffffffffffen, -0x100000000n, -0xfffffffffffffffe00000000n],
+ [0xffffffffffffffffn, -0x100000000n, -0xffffffffffffffff00000000n],
+ [0x10000000000000000n, -0x100000000n, -0x1000000000000000000000000n],
+ [0x10000000000000001n, -0x100000000n, -0x1000000000000000100000000n],
+ [-0x10000000000000001n, -0xffffffffn, 0xffffffff00000000ffffffffn],
+ [-0x10000000000000000n, -0xffffffffn, 0xffffffff0000000000000000n],
+ [-0xffffffffffffffffn, -0xffffffffn, 0xfffffffeffffffff00000001n],
+ [-0xfffffffffffffffen, -0xffffffffn, 0xfffffffefffffffe00000002n],
+ [-0x8000000000000001n, -0xffffffffn, 0x7fffffff80000000ffffffffn],
+ [-0x8000000000000000n, -0xffffffffn, 0x7fffffff8000000000000000n],
+ [-0x7fffffffffffffffn, -0xffffffffn, 0x7fffffff7fffffff00000001n],
+ [-0x7ffffffffffffffen, -0xffffffffn, 0x7fffffff7ffffffe00000002n],
+ [-0xffffffffn, -0xffffffffn, 0xfffffffe00000001n],
+ [-0xfffffffen, -0xffffffffn, 0xfffffffd00000002n],
+ [0x7ffffffffffffffen, -0xffffffffn, -0x7fffffff7ffffffe00000002n],
+ [0x7fffffffffffffffn, -0xffffffffn, -0x7fffffff7fffffff00000001n],
+ [0x8000000000000000n, -0xffffffffn, -0x7fffffff8000000000000000n],
+ [0x8000000000000001n, -0xffffffffn, -0x7fffffff80000000ffffffffn],
+ [0xfffffffffffffffen, -0xffffffffn, -0xfffffffefffffffe00000002n],
+ [0xffffffffffffffffn, -0xffffffffn, -0xfffffffeffffffff00000001n],
+ [0x10000000000000000n, -0xffffffffn, -0xffffffff0000000000000000n],
+ [0x10000000000000001n, -0xffffffffn, -0xffffffff00000000ffffffffn],
+ [-0x10000000000000001n, -0xfffffffen, 0xfffffffe00000000fffffffen],
+ [-0x10000000000000000n, -0xfffffffen, 0xfffffffe0000000000000000n],
+ [-0xffffffffffffffffn, -0xfffffffen, 0xfffffffdffffffff00000002n],
+ [-0xfffffffffffffffen, -0xfffffffen, 0xfffffffdfffffffe00000004n],
+ [-0x8000000000000001n, -0xfffffffen, 0x7fffffff00000000fffffffen],
+ [-0x8000000000000000n, -0xfffffffen, 0x7fffffff0000000000000000n],
+ [-0x7fffffffffffffffn, -0xfffffffen, 0x7ffffffeffffffff00000002n],
+ [-0x7ffffffffffffffen, -0xfffffffen, 0x7ffffffefffffffe00000004n],
+ [-0xfffffffen, -0xfffffffen, 0xfffffffc00000004n],
+ [0x7ffffffffffffffen, -0xfffffffen, -0x7ffffffefffffffe00000004n],
+ [0x7fffffffffffffffn, -0xfffffffen, -0x7ffffffeffffffff00000002n],
+ [0x8000000000000000n, -0xfffffffen, -0x7fffffff0000000000000000n],
+ [0x8000000000000001n, -0xfffffffen, -0x7fffffff00000000fffffffen],
+ [0xfffffffffffffffen, -0xfffffffen, -0xfffffffdfffffffe00000004n],
+ [0xffffffffffffffffn, -0xfffffffen, -0xfffffffdffffffff00000002n],
+ [0x10000000000000000n, -0xfffffffen, -0xfffffffe0000000000000000n],
+ [0x10000000000000001n, -0xfffffffen, -0xfffffffe00000000fffffffen],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, -0x7ffffffffffffffe7ffffffffffffffen],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, -0x7ffffffffffffffe0000000000000000n],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, -0x7ffffffffffffffd8000000000000002n],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, -0x7ffffffffffffffd0000000000000004n],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, -0x3fffffffffffffff7ffffffffffffffen],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, -0x3fffffffffffffff0000000000000000n],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, -0x3ffffffffffffffe8000000000000002n],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, -0x3ffffffffffffffe0000000000000004n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0x3ffffffffffffffe0000000000000004n],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 0x3ffffffffffffffe8000000000000002n],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 0x3fffffffffffffff0000000000000000n],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 0x3fffffffffffffff7ffffffffffffffen],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 0x7ffffffffffffffd0000000000000004n],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 0x7ffffffffffffffd8000000000000002n],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 0x7ffffffffffffffe0000000000000000n],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 0x7ffffffffffffffe7ffffffffffffffen],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, -0x7fffffffffffffff7fffffffffffffffn],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, -0x7fffffffffffffff0000000000000000n],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, -0x7ffffffffffffffe8000000000000001n],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, -0x7ffffffffffffffe0000000000000002n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, -0x3fffffffffffffffffffffffffffffffn],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, -0x3fffffffffffffff8000000000000000n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, -0x3fffffffffffffff0000000000000001n],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, -0x3ffffffffffffffe8000000000000002n],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0x3fffffffffffffff0000000000000001n],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 0x3fffffffffffffff8000000000000000n],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 0x3fffffffffffffffffffffffffffffffn],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 0x7ffffffffffffffe0000000000000002n],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 0x7ffffffffffffffe8000000000000001n],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 0x7fffffffffffffff0000000000000000n],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 0x7fffffffffffffff7fffffffffffffffn],
+ [-0x10000000000000001n, 0x8000000000000000n, -0x80000000000000008000000000000000n],
+ [-0x10000000000000000n, 0x8000000000000000n, -0x80000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, -0x7fffffffffffffff8000000000000000n],
+ [-0xfffffffffffffffen, 0x8000000000000000n, -0x7fffffffffffffff0000000000000000n],
+ [-0x8000000000000001n, 0x8000000000000000n, -0x40000000000000008000000000000000n],
+ [-0x8000000000000000n, 0x8000000000000000n, -0x40000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, -0x3fffffffffffffff8000000000000000n],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, -0x3fffffffffffffff0000000000000000n],
+ [0x8000000000000000n, 0x8000000000000000n, 0x40000000000000000000000000000000n],
+ [0x8000000000000001n, 0x8000000000000000n, 0x40000000000000008000000000000000n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 0x7fffffffffffffff0000000000000000n],
+ [0xffffffffffffffffn, 0x8000000000000000n, 0x7fffffffffffffff8000000000000000n],
+ [0x10000000000000000n, 0x8000000000000000n, 0x80000000000000000000000000000000n],
+ [0x10000000000000001n, 0x8000000000000000n, 0x80000000000000008000000000000000n],
+ [-0x10000000000000001n, 0x8000000000000001n, -0x80000000000000018000000000000001n],
+ [-0x10000000000000000n, 0x8000000000000001n, -0x80000000000000010000000000000000n],
+ [-0xffffffffffffffffn, 0x8000000000000001n, -0x80000000000000007fffffffffffffffn],
+ [-0xfffffffffffffffen, 0x8000000000000001n, -0x7ffffffffffffffffffffffffffffffen],
+ [-0x8000000000000001n, 0x8000000000000001n, -0x40000000000000010000000000000001n],
+ [-0x8000000000000000n, 0x8000000000000001n, -0x40000000000000008000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, -0x3fffffffffffffffffffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, -0x3fffffffffffffff7ffffffffffffffen],
+ [0x8000000000000001n, 0x8000000000000001n, 0x40000000000000010000000000000001n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 0x7ffffffffffffffffffffffffffffffen],
+ [0xffffffffffffffffn, 0x8000000000000001n, 0x80000000000000007fffffffffffffffn],
+ [0x10000000000000000n, 0x8000000000000001n, 0x80000000000000010000000000000000n],
+ [0x10000000000000001n, 0x8000000000000001n, 0x80000000000000018000000000000001n],
+ [-0x10000000000000001n, -0x8000000000000001n, 0x80000000000000018000000000000001n],
+ [-0x10000000000000000n, -0x8000000000000001n, 0x80000000000000010000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000001n, 0x80000000000000007fffffffffffffffn],
+ [-0xfffffffffffffffen, -0x8000000000000001n, 0x7ffffffffffffffffffffffffffffffen],
+ [-0x8000000000000001n, -0x8000000000000001n, 0x40000000000000010000000000000001n],
+ [-0x8000000000000000n, -0x8000000000000001n, 0x40000000000000008000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, 0x3fffffffffffffffffffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, 0x3fffffffffffffff7ffffffffffffffen],
+ [0xfffffffffffffffen, -0x8000000000000001n, -0x7ffffffffffffffffffffffffffffffen],
+ [0xffffffffffffffffn, -0x8000000000000001n, -0x80000000000000007fffffffffffffffn],
+ [0x10000000000000000n, -0x8000000000000001n, -0x80000000000000010000000000000000n],
+ [0x10000000000000001n, -0x8000000000000001n, -0x80000000000000018000000000000001n],
+ [-0x10000000000000001n, -0x8000000000000000n, 0x80000000000000008000000000000000n],
+ [-0x10000000000000000n, -0x8000000000000000n, 0x80000000000000000000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, 0x7fffffffffffffff8000000000000000n],
+ [-0xfffffffffffffffen, -0x8000000000000000n, 0x7fffffffffffffff0000000000000000n],
+ [-0x8000000000000000n, -0x8000000000000000n, 0x40000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, 0x3fffffffffffffff8000000000000000n],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, 0x3fffffffffffffff0000000000000000n],
+ [0xfffffffffffffffen, -0x8000000000000000n, -0x7fffffffffffffff0000000000000000n],
+ [0xffffffffffffffffn, -0x8000000000000000n, -0x7fffffffffffffff8000000000000000n],
+ [0x10000000000000000n, -0x8000000000000000n, -0x80000000000000000000000000000000n],
+ [0x10000000000000001n, -0x8000000000000000n, -0x80000000000000008000000000000000n],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, 0x7fffffffffffffff7fffffffffffffffn],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, 0x7fffffffffffffff0000000000000000n],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, 0x7ffffffffffffffe8000000000000001n],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, 0x7ffffffffffffffe0000000000000002n],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, 0x3fffffffffffffff0000000000000001n],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, 0x3ffffffffffffffe8000000000000002n],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, -0x7ffffffffffffffe0000000000000002n],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, -0x7ffffffffffffffe8000000000000001n],
+ [0x10000000000000000n, -0x7fffffffffffffffn, -0x7fffffffffffffff0000000000000000n],
+ [0x10000000000000001n, -0x7fffffffffffffffn, -0x7fffffffffffffff7fffffffffffffffn],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, 0x7ffffffffffffffe7ffffffffffffffen],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, 0x7ffffffffffffffe0000000000000000n],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, 0x7ffffffffffffffd8000000000000002n],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, 0x7ffffffffffffffd0000000000000004n],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, 0x3ffffffffffffffe0000000000000004n],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, -0x7ffffffffffffffd0000000000000004n],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, -0x7ffffffffffffffd8000000000000002n],
+ [0x10000000000000000n, -0x7ffffffffffffffen, -0x7ffffffffffffffe0000000000000000n],
+ [0x10000000000000001n, -0x7ffffffffffffffen, -0x7ffffffffffffffe7ffffffffffffffen],
+ [-0x10000000000000001n, 0xfffffffffffffffen, -0xfffffffffffffffefffffffffffffffen],
+ [-0x10000000000000000n, 0xfffffffffffffffen, -0xfffffffffffffffe0000000000000000n],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, -0xfffffffffffffffd0000000000000002n],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, -0xfffffffffffffffc0000000000000004n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 0xfffffffffffffffc0000000000000004n],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 0xfffffffffffffffd0000000000000002n],
+ [0x10000000000000000n, 0xfffffffffffffffen, 0xfffffffffffffffe0000000000000000n],
+ [0x10000000000000001n, 0xfffffffffffffffen, 0xfffffffffffffffefffffffffffffffen],
+ [-0x10000000000000001n, 0xffffffffffffffffn, -0xffffffffffffffffffffffffffffffffn],
+ [-0x10000000000000000n, 0xffffffffffffffffn, -0xffffffffffffffff0000000000000000n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, -0xfffffffffffffffe0000000000000001n],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, -0xfffffffffffffffd0000000000000002n],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 0xfffffffffffffffe0000000000000001n],
+ [0x10000000000000000n, 0xffffffffffffffffn, 0xffffffffffffffff0000000000000000n],
+ [0x10000000000000001n, 0xffffffffffffffffn, 0xffffffffffffffffffffffffffffffffn],
+ [-0x10000000000000001n, 0x10000000000000000n, -0x100000000000000010000000000000000n],
+ [-0x10000000000000000n, 0x10000000000000000n, -0x100000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, -0xffffffffffffffff0000000000000000n],
+ [-0xfffffffffffffffen, 0x10000000000000000n, -0xfffffffffffffffe0000000000000000n],
+ [0x10000000000000000n, 0x10000000000000000n, 0x100000000000000000000000000000000n],
+ [0x10000000000000001n, 0x10000000000000000n, 0x100000000000000010000000000000000n],
+ [-0x10000000000000001n, 0x10000000000000001n, -0x100000000000000020000000000000001n],
+ [-0x10000000000000000n, 0x10000000000000001n, -0x100000000000000010000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000001n, -0xffffffffffffffffffffffffffffffffn],
+ [-0xfffffffffffffffen, 0x10000000000000001n, -0xfffffffffffffffefffffffffffffffen],
+ [0x10000000000000001n, 0x10000000000000001n, 0x100000000000000020000000000000001n],
+ [-0x10000000000000001n, -0x10000000000000001n, 0x100000000000000020000000000000001n],
+ [-0x10000000000000000n, -0x10000000000000001n, 0x100000000000000010000000000000000n],
+ [-0xffffffffffffffffn, -0x10000000000000001n, 0xffffffffffffffffffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x10000000000000001n, 0xfffffffffffffffefffffffffffffffen],
+ [-0x10000000000000000n, -0x10000000000000000n, 0x100000000000000000000000000000000n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, 0xffffffffffffffff0000000000000000n],
+ [-0xfffffffffffffffen, -0x10000000000000000n, 0xfffffffffffffffe0000000000000000n],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, 0xfffffffffffffffe0000000000000001n],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, 0xfffffffffffffffd0000000000000002n],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, 0xfffffffffffffffc0000000000000004n],
+];
+
+// Cases not covered above.
+tests.push(
+ // Int32 overflow:
+ //
+ // Math.floor(2 ** (Math.log2(2147483648) / 2))
+ // = Math.floor(2 ** 15.5)
+ // = 46340
+ //
+ // Math.ceil(2 ** (Math.log2(2147483648) / 2))
+ // = Math.ceil(2 ** 15.5)
+ // = 46341
+ [46340n, 46340n, 2147395600n],
+ [46341n, 46341n, 2147488281n],
+ [46340n, -46340n, -2147395600n],
+ [46341n, -46341n, -2147488281n],
+ [-46340n, -46340n, 2147395600n],
+ [-46341n, -46341n, 2147488281n],
+
+ // Int64 overflow
+ [3037000499n, 3037000499n, 9223372030926249001n],
+ [3037000500n, 3037000500n, 9223372037000250000n],
+ [3037000499n, -3037000499n, -9223372030926249001n],
+ [3037000500n, -3037000500n, -9223372037000250000n],
+ [-3037000499n, -3037000499n, 9223372030926249001n],
+ [-3037000500n, -3037000500n, 9223372037000250000n],
+);
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs * rhs, expected);
+ assertEq(rhs * lhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-neg.js b/js/src/jit-test/tests/bigint/bigint-neg.js
new file mode 100644
index 0000000000..b3dd918be7
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-neg.js
@@ -0,0 +1,51 @@
+const tests = [
+ [-0x10000000000000001n, 0x10000000000000001n],
+ [-0x10000000000000000n, 0x10000000000000000n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen],
+ [-0x8000000000000001n, 0x8000000000000001n],
+ [-0x8000000000000000n, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [-0x100000001n, 0x100000001n],
+ [-0x100000000n, 0x100000000n],
+ [-0xffffffffn, 0xffffffffn],
+ [-0xfffffffen, 0xfffffffen],
+ [-0x80000001n, 0x80000001n],
+ [-0x80000000n, 0x80000000n],
+ [-0x7fffffffn, 0x7fffffffn],
+ [-0x7ffffffen, 0x7ffffffen],
+ [-2n, 2n],
+ [-1n, 1n],
+ [0n, 0n],
+ [1n, -1n],
+ [2n, -2n],
+ [0x7ffffffen, -0x7ffffffen],
+ [0x7fffffffn, -0x7fffffffn],
+ [0x80000000n, -0x80000000n],
+ [0x80000001n, -0x80000001n],
+ [0xfffffffen, -0xfffffffen],
+ [0xffffffffn, -0xffffffffn],
+ [0x100000000n, -0x100000000n],
+ [0x100000001n, -0x100000001n],
+ [0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [0x8000000000000000n, -0x8000000000000000n],
+ [0x8000000000000001n, -0x8000000000000001n],
+ [0xfffffffffffffffen, -0xfffffffffffffffen],
+ [0xffffffffffffffffn, -0xffffffffffffffffn],
+ [0x10000000000000000n, -0x10000000000000000n],
+ [0x10000000000000001n, -0x10000000000000001n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(-input, expected);
+ }
+}
+
+for (let i = 0; i < 200; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-not.js b/js/src/jit-test/tests/bigint/bigint-not.js
new file mode 100644
index 0000000000..796f7027f7
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-not.js
@@ -0,0 +1,51 @@
+const tests = [
+ [-0x10000000000000001n, 0x10000000000000000n],
+ [-0x10000000000000000n, 0xffffffffffffffffn],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen],
+ [-0xfffffffffffffffen, 0xfffffffffffffffdn],
+ [-0x8000000000000001n, 0x8000000000000000n],
+ [-0x8000000000000000n, 0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffdn],
+ [-0x100000001n, 0x100000000n],
+ [-0x100000000n, 0xffffffffn],
+ [-0xffffffffn, 0xfffffffen],
+ [-0xfffffffen, 0xfffffffdn],
+ [-0x80000001n, 0x80000000n],
+ [-0x80000000n, 0x7fffffffn],
+ [-0x7fffffffn, 0x7ffffffen],
+ [-0x7ffffffen, 0x7ffffffdn],
+ [-2n, 1n],
+ [-1n, 0n],
+ [0n, -1n],
+ [1n, -2n],
+ [2n, -3n],
+ [0x7ffffffen, -0x7fffffffn],
+ [0x7fffffffn, -0x80000000n],
+ [0x80000000n, -0x80000001n],
+ [0x80000001n, -0x80000002n],
+ [0xfffffffen, -0xffffffffn],
+ [0xffffffffn, -0x100000000n],
+ [0x100000000n, -0x100000001n],
+ [0x100000001n, -0x100000002n],
+ [0x7ffffffffffffffen, -0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, -0x8000000000000000n],
+ [0x8000000000000000n, -0x8000000000000001n],
+ [0x8000000000000001n, -0x8000000000000002n],
+ [0xfffffffffffffffen, -0xffffffffffffffffn],
+ [0xffffffffffffffffn, -0x10000000000000000n],
+ [0x10000000000000000n, -0x10000000000000001n],
+ [0x10000000000000001n, -0x10000000000000002n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let input = test[0], expected = test[1];
+
+ assertEq(~input, expected);
+ }
+}
+
+for (let i = 0; i < 200; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-or.js b/js/src/jit-test/tests/bigint/bigint-or.js
new file mode 100644
index 0000000000..fae3f62b99
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-or.js
@@ -0,0 +1,718 @@
+const tests = [
+ [-0x10000000000000001n, -2n, -1n],
+ [-0x10000000000000000n, -2n, -2n],
+ [-0xffffffffffffffffn, -2n, -1n],
+ [-0xfffffffffffffffen, -2n, -2n],
+ [-0x8000000000000001n, -2n, -1n],
+ [-0x8000000000000000n, -2n, -2n],
+ [-0x7fffffffffffffffn, -2n, -1n],
+ [-0x7ffffffffffffffen, -2n, -2n],
+ [-0x100000001n, -2n, -1n],
+ [-0x100000000n, -2n, -2n],
+ [-0xffffffffn, -2n, -1n],
+ [-0xfffffffen, -2n, -2n],
+ [-0x80000001n, -2n, -1n],
+ [-0x80000000n, -2n, -2n],
+ [-0x7fffffffn, -2n, -1n],
+ [-0x7ffffffen, -2n, -2n],
+ [-2n, -2n, -2n],
+ [-1n, -2n, -1n],
+ [0n, -2n, -2n],
+ [1n, -2n, -1n],
+ [2n, -2n, -2n],
+ [0x7ffffffen, -2n, -2n],
+ [0x7fffffffn, -2n, -1n],
+ [0x80000000n, -2n, -2n],
+ [0x80000001n, -2n, -1n],
+ [0xfffffffen, -2n, -2n],
+ [0xffffffffn, -2n, -1n],
+ [0x100000000n, -2n, -2n],
+ [0x100000001n, -2n, -1n],
+ [0x7ffffffffffffffen, -2n, -2n],
+ [0x7fffffffffffffffn, -2n, -1n],
+ [0x8000000000000000n, -2n, -2n],
+ [0x8000000000000001n, -2n, -1n],
+ [0xfffffffffffffffen, -2n, -2n],
+ [0xffffffffffffffffn, -2n, -1n],
+ [0x10000000000000000n, -2n, -2n],
+ [0x10000000000000001n, -2n, -1n],
+ [-0x10000000000000001n, -1n, -1n],
+ [-0x10000000000000000n, -1n, -1n],
+ [-0xffffffffffffffffn, -1n, -1n],
+ [-0xfffffffffffffffen, -1n, -1n],
+ [-0x8000000000000001n, -1n, -1n],
+ [-0x8000000000000000n, -1n, -1n],
+ [-0x7fffffffffffffffn, -1n, -1n],
+ [-0x7ffffffffffffffen, -1n, -1n],
+ [-0x100000001n, -1n, -1n],
+ [-0x100000000n, -1n, -1n],
+ [-0xffffffffn, -1n, -1n],
+ [-0xfffffffen, -1n, -1n],
+ [-0x80000001n, -1n, -1n],
+ [-0x80000000n, -1n, -1n],
+ [-0x7fffffffn, -1n, -1n],
+ [-0x7ffffffen, -1n, -1n],
+ [-1n, -1n, -1n],
+ [0n, -1n, -1n],
+ [1n, -1n, -1n],
+ [2n, -1n, -1n],
+ [0x7ffffffen, -1n, -1n],
+ [0x7fffffffn, -1n, -1n],
+ [0x80000000n, -1n, -1n],
+ [0x80000001n, -1n, -1n],
+ [0xfffffffen, -1n, -1n],
+ [0xffffffffn, -1n, -1n],
+ [0x100000000n, -1n, -1n],
+ [0x100000001n, -1n, -1n],
+ [0x7ffffffffffffffen, -1n, -1n],
+ [0x7fffffffffffffffn, -1n, -1n],
+ [0x8000000000000000n, -1n, -1n],
+ [0x8000000000000001n, -1n, -1n],
+ [0xfffffffffffffffen, -1n, -1n],
+ [0xffffffffffffffffn, -1n, -1n],
+ [0x10000000000000000n, -1n, -1n],
+ [0x10000000000000001n, -1n, -1n],
+ [-0x10000000000000001n, 0n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0n, -0x100000001n],
+ [-0x100000000n, 0n, -0x100000000n],
+ [-0xffffffffn, 0n, -0xffffffffn],
+ [-0xfffffffen, 0n, -0xfffffffen],
+ [-0x80000001n, 0n, -0x80000001n],
+ [-0x80000000n, 0n, -0x80000000n],
+ [-0x7fffffffn, 0n, -0x7fffffffn],
+ [-0x7ffffffen, 0n, -0x7ffffffen],
+ [0n, 0n, 0n],
+ [1n, 0n, 1n],
+ [2n, 0n, 2n],
+ [0x7ffffffen, 0n, 0x7ffffffen],
+ [0x7fffffffn, 0n, 0x7fffffffn],
+ [0x80000000n, 0n, 0x80000000n],
+ [0x80000001n, 0n, 0x80000001n],
+ [0xfffffffen, 0n, 0xfffffffen],
+ [0xffffffffn, 0n, 0xffffffffn],
+ [0x100000000n, 0n, 0x100000000n],
+ [0x100000001n, 0n, 0x100000001n],
+ [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0n, 0x8000000000000000n],
+ [0x8000000000000001n, 0n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0n, 0x10000000000000000n],
+ [0x10000000000000001n, 0n, 0x10000000000000001n],
+ [-0x10000000000000001n, 1n, -0x10000000000000001n],
+ [-0x10000000000000000n, 1n, -0xffffffffffffffffn],
+ [-0xffffffffffffffffn, 1n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 1n, -0xfffffffffffffffdn],
+ [-0x8000000000000001n, 1n, -0x8000000000000001n],
+ [-0x8000000000000000n, 1n, -0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, 1n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 1n, -0x7ffffffffffffffdn],
+ [-0x100000001n, 1n, -0x100000001n],
+ [-0x100000000n, 1n, -0xffffffffn],
+ [-0xffffffffn, 1n, -0xffffffffn],
+ [-0xfffffffen, 1n, -0xfffffffdn],
+ [-0x80000001n, 1n, -0x80000001n],
+ [-0x80000000n, 1n, -0x7fffffffn],
+ [-0x7fffffffn, 1n, -0x7fffffffn],
+ [-0x7ffffffen, 1n, -0x7ffffffdn],
+ [1n, 1n, 1n],
+ [2n, 1n, 3n],
+ [0x7ffffffen, 1n, 0x7fffffffn],
+ [0x7fffffffn, 1n, 0x7fffffffn],
+ [0x80000000n, 1n, 0x80000001n],
+ [0x80000001n, 1n, 0x80000001n],
+ [0xfffffffen, 1n, 0xffffffffn],
+ [0xffffffffn, 1n, 0xffffffffn],
+ [0x100000000n, 1n, 0x100000001n],
+ [0x100000001n, 1n, 0x100000001n],
+ [0x7ffffffffffffffen, 1n, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 1n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 1n, 0x8000000000000001n],
+ [0x8000000000000001n, 1n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 1n, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 1n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 1n, 0x10000000000000001n],
+ [0x10000000000000001n, 1n, 0x10000000000000001n],
+ [-0x10000000000000001n, 2n, -0x10000000000000001n],
+ [-0x10000000000000000n, 2n, -0xfffffffffffffffen],
+ [-0xffffffffffffffffn, 2n, -0xfffffffffffffffdn],
+ [-0xfffffffffffffffen, 2n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 2n, -0x8000000000000001n],
+ [-0x8000000000000000n, 2n, -0x7ffffffffffffffen],
+ [-0x7fffffffffffffffn, 2n, -0x7ffffffffffffffdn],
+ [-0x7ffffffffffffffen, 2n, -0x7ffffffffffffffen],
+ [-0x100000001n, 2n, -0x100000001n],
+ [-0x100000000n, 2n, -0xfffffffen],
+ [-0xffffffffn, 2n, -0xfffffffdn],
+ [-0xfffffffen, 2n, -0xfffffffen],
+ [-0x80000001n, 2n, -0x80000001n],
+ [-0x80000000n, 2n, -0x7ffffffen],
+ [-0x7fffffffn, 2n, -0x7ffffffdn],
+ [-0x7ffffffen, 2n, -0x7ffffffen],
+ [2n, 2n, 2n],
+ [0x7ffffffen, 2n, 0x7ffffffen],
+ [0x7fffffffn, 2n, 0x7fffffffn],
+ [0x80000000n, 2n, 0x80000002n],
+ [0x80000001n, 2n, 0x80000003n],
+ [0xfffffffen, 2n, 0xfffffffen],
+ [0xffffffffn, 2n, 0xffffffffn],
+ [0x100000000n, 2n, 0x100000002n],
+ [0x100000001n, 2n, 0x100000003n],
+ [0x7ffffffffffffffen, 2n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 2n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 2n, 0x8000000000000002n],
+ [0x8000000000000001n, 2n, 0x8000000000000003n],
+ [0xfffffffffffffffen, 2n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 2n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 2n, 0x10000000000000002n],
+ [0x10000000000000001n, 2n, 0x10000000000000003n],
+ [-0x10000000000000001n, 0x7ffffffen, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x7ffffffen, -0xffffffff80000002n],
+ [-0xffffffffffffffffn, 0x7ffffffen, -0xffffffff80000001n],
+ [-0xfffffffffffffffen, 0x7ffffffen, -0xffffffff80000002n],
+ [-0x8000000000000001n, 0x7ffffffen, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x7ffffffen, -0x7fffffff80000002n],
+ [-0x7fffffffffffffffn, 0x7ffffffen, -0x7fffffff80000001n],
+ [-0x7ffffffffffffffen, 0x7ffffffen, -0x7fffffff80000002n],
+ [-0x100000001n, 0x7ffffffen, -0x100000001n],
+ [-0x100000000n, 0x7ffffffen, -0x80000002n],
+ [-0xffffffffn, 0x7ffffffen, -0x80000001n],
+ [-0xfffffffen, 0x7ffffffen, -0x80000002n],
+ [-0x80000001n, 0x7ffffffen, -0x80000001n],
+ [-0x80000000n, 0x7ffffffen, -2n],
+ [-0x7fffffffn, 0x7ffffffen, -1n],
+ [-0x7ffffffen, 0x7ffffffen, -2n],
+ [0x7ffffffen, 0x7ffffffen, 0x7ffffffen],
+ [0x7fffffffn, 0x7ffffffen, 0x7fffffffn],
+ [0x80000000n, 0x7ffffffen, 0xfffffffen],
+ [0x80000001n, 0x7ffffffen, 0xffffffffn],
+ [0xfffffffen, 0x7ffffffen, 0xfffffffen],
+ [0xffffffffn, 0x7ffffffen, 0xffffffffn],
+ [0x100000000n, 0x7ffffffen, 0x17ffffffen],
+ [0x100000001n, 0x7ffffffen, 0x17fffffffn],
+ [0x7ffffffffffffffen, 0x7ffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x7ffffffen, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x7ffffffen, 0x800000007ffffffen],
+ [0x8000000000000001n, 0x7ffffffen, 0x800000007fffffffn],
+ [0xfffffffffffffffen, 0x7ffffffen, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0x7ffffffen, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x7ffffffen, 0x1000000007ffffffen],
+ [0x10000000000000001n, 0x7ffffffen, 0x1000000007fffffffn],
+ [-0x10000000000000001n, 0x7fffffffn, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x7fffffffn, -0xffffffff80000001n],
+ [-0xffffffffffffffffn, 0x7fffffffn, -0xffffffff80000001n],
+ [-0xfffffffffffffffen, 0x7fffffffn, -0xffffffff80000001n],
+ [-0x8000000000000001n, 0x7fffffffn, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x7fffffffn, -0x7fffffff80000001n],
+ [-0x7fffffffffffffffn, 0x7fffffffn, -0x7fffffff80000001n],
+ [-0x7ffffffffffffffen, 0x7fffffffn, -0x7fffffff80000001n],
+ [-0x100000001n, 0x7fffffffn, -0x100000001n],
+ [-0x100000000n, 0x7fffffffn, -0x80000001n],
+ [-0xffffffffn, 0x7fffffffn, -0x80000001n],
+ [-0xfffffffen, 0x7fffffffn, -0x80000001n],
+ [-0x80000001n, 0x7fffffffn, -0x80000001n],
+ [-0x80000000n, 0x7fffffffn, -1n],
+ [-0x7fffffffn, 0x7fffffffn, -1n],
+ [-0x7ffffffen, 0x7fffffffn, -1n],
+ [0x7fffffffn, 0x7fffffffn, 0x7fffffffn],
+ [0x80000000n, 0x7fffffffn, 0xffffffffn],
+ [0x80000001n, 0x7fffffffn, 0xffffffffn],
+ [0xfffffffen, 0x7fffffffn, 0xffffffffn],
+ [0xffffffffn, 0x7fffffffn, 0xffffffffn],
+ [0x100000000n, 0x7fffffffn, 0x17fffffffn],
+ [0x100000001n, 0x7fffffffn, 0x17fffffffn],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 0x7fffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x7fffffffn, 0x800000007fffffffn],
+ [0x8000000000000001n, 0x7fffffffn, 0x800000007fffffffn],
+ [0xfffffffffffffffen, 0x7fffffffn, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 0x7fffffffn, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x7fffffffn, 0x1000000007fffffffn],
+ [0x10000000000000001n, 0x7fffffffn, 0x1000000007fffffffn],
+ [-0x10000000000000001n, 0x80000000n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x80000000n, -0xffffffff80000000n],
+ [-0xffffffffffffffffn, 0x80000000n, -0xffffffff7fffffffn],
+ [-0xfffffffffffffffen, 0x80000000n, -0xffffffff7ffffffen],
+ [-0x8000000000000001n, 0x80000000n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x80000000n, -0x7fffffff80000000n],
+ [-0x7fffffffffffffffn, 0x80000000n, -0x7fffffff7fffffffn],
+ [-0x7ffffffffffffffen, 0x80000000n, -0x7fffffff7ffffffen],
+ [-0x100000001n, 0x80000000n, -0x100000001n],
+ [-0x100000000n, 0x80000000n, -0x80000000n],
+ [-0xffffffffn, 0x80000000n, -0x7fffffffn],
+ [-0xfffffffen, 0x80000000n, -0x7ffffffen],
+ [-0x80000001n, 0x80000000n, -1n],
+ [-0x80000000n, 0x80000000n, -0x80000000n],
+ [-0x7fffffffn, 0x80000000n, -0x7fffffffn],
+ [-0x7ffffffen, 0x80000000n, -0x7ffffffen],
+ [0x80000000n, 0x80000000n, 0x80000000n],
+ [0x80000001n, 0x80000000n, 0x80000001n],
+ [0xfffffffen, 0x80000000n, 0xfffffffen],
+ [0xffffffffn, 0x80000000n, 0xffffffffn],
+ [0x100000000n, 0x80000000n, 0x180000000n],
+ [0x100000001n, 0x80000000n, 0x180000001n],
+ [0x7ffffffffffffffen, 0x80000000n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x80000000n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x80000000n, 0x8000000080000000n],
+ [0x8000000000000001n, 0x80000000n, 0x8000000080000001n],
+ [0xfffffffffffffffen, 0x80000000n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0x80000000n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x80000000n, 0x10000000080000000n],
+ [0x10000000000000001n, 0x80000000n, 0x10000000080000001n],
+ [-0x10000000000000001n, 0x80000001n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x80000001n, -0xffffffff7fffffffn],
+ [-0xffffffffffffffffn, 0x80000001n, -0xffffffff7fffffffn],
+ [-0xfffffffffffffffen, 0x80000001n, -0xffffffff7ffffffdn],
+ [-0x8000000000000001n, 0x80000001n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x80000001n, -0x7fffffff7fffffffn],
+ [-0x7fffffffffffffffn, 0x80000001n, -0x7fffffff7fffffffn],
+ [-0x7ffffffffffffffen, 0x80000001n, -0x7fffffff7ffffffdn],
+ [-0x100000001n, 0x80000001n, -0x100000001n],
+ [-0x100000000n, 0x80000001n, -0x7fffffffn],
+ [-0xffffffffn, 0x80000001n, -0x7fffffffn],
+ [-0xfffffffen, 0x80000001n, -0x7ffffffdn],
+ [-0x80000001n, 0x80000001n, -1n],
+ [-0x80000000n, 0x80000001n, -0x7fffffffn],
+ [-0x7fffffffn, 0x80000001n, -0x7fffffffn],
+ [-0x7ffffffen, 0x80000001n, -0x7ffffffdn],
+ [0x80000001n, 0x80000001n, 0x80000001n],
+ [0xfffffffen, 0x80000001n, 0xffffffffn],
+ [0xffffffffn, 0x80000001n, 0xffffffffn],
+ [0x100000000n, 0x80000001n, 0x180000001n],
+ [0x100000001n, 0x80000001n, 0x180000001n],
+ [0x7ffffffffffffffen, 0x80000001n, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 0x80000001n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x80000001n, 0x8000000080000001n],
+ [0x8000000000000001n, 0x80000001n, 0x8000000080000001n],
+ [0xfffffffffffffffen, 0x80000001n, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 0x80000001n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x80000001n, 0x10000000080000001n],
+ [0x10000000000000001n, 0x80000001n, 0x10000000080000001n],
+ [-0x10000000000000001n, -0x80000001n, -1n],
+ [-0x10000000000000000n, -0x80000001n, -0x80000001n],
+ [-0xffffffffffffffffn, -0x80000001n, -0x80000001n],
+ [-0xfffffffffffffffen, -0x80000001n, -0x80000001n],
+ [-0x8000000000000001n, -0x80000001n, -1n],
+ [-0x8000000000000000n, -0x80000001n, -0x80000001n],
+ [-0x7fffffffffffffffn, -0x80000001n, -0x80000001n],
+ [-0x7ffffffffffffffen, -0x80000001n, -0x80000001n],
+ [-0x100000001n, -0x80000001n, -1n],
+ [-0x100000000n, -0x80000001n, -0x80000001n],
+ [-0xffffffffn, -0x80000001n, -0x80000001n],
+ [-0xfffffffen, -0x80000001n, -0x80000001n],
+ [-0x80000001n, -0x80000001n, -0x80000001n],
+ [-0x80000000n, -0x80000001n, -1n],
+ [-0x7fffffffn, -0x80000001n, -1n],
+ [-0x7ffffffen, -0x80000001n, -1n],
+ [0xfffffffen, -0x80000001n, -1n],
+ [0xffffffffn, -0x80000001n, -1n],
+ [0x100000000n, -0x80000001n, -0x80000001n],
+ [0x100000001n, -0x80000001n, -0x80000001n],
+ [0x7ffffffffffffffen, -0x80000001n, -1n],
+ [0x7fffffffffffffffn, -0x80000001n, -1n],
+ [0x8000000000000000n, -0x80000001n, -0x80000001n],
+ [0x8000000000000001n, -0x80000001n, -0x80000001n],
+ [0xfffffffffffffffen, -0x80000001n, -1n],
+ [0xffffffffffffffffn, -0x80000001n, -1n],
+ [0x10000000000000000n, -0x80000001n, -0x80000001n],
+ [0x10000000000000001n, -0x80000001n, -0x80000001n],
+ [-0x10000000000000001n, -0x80000000n, -1n],
+ [-0x10000000000000000n, -0x80000000n, -0x80000000n],
+ [-0xffffffffffffffffn, -0x80000000n, -0x7fffffffn],
+ [-0xfffffffffffffffen, -0x80000000n, -0x7ffffffen],
+ [-0x8000000000000001n, -0x80000000n, -1n],
+ [-0x8000000000000000n, -0x80000000n, -0x80000000n],
+ [-0x7fffffffffffffffn, -0x80000000n, -0x7fffffffn],
+ [-0x7ffffffffffffffen, -0x80000000n, -0x7ffffffen],
+ [-0x100000001n, -0x80000000n, -1n],
+ [-0x100000000n, -0x80000000n, -0x80000000n],
+ [-0xffffffffn, -0x80000000n, -0x7fffffffn],
+ [-0xfffffffen, -0x80000000n, -0x7ffffffen],
+ [-0x80000000n, -0x80000000n, -0x80000000n],
+ [-0x7fffffffn, -0x80000000n, -0x7fffffffn],
+ [-0x7ffffffen, -0x80000000n, -0x7ffffffen],
+ [0xfffffffen, -0x80000000n, -2n],
+ [0xffffffffn, -0x80000000n, -1n],
+ [0x100000000n, -0x80000000n, -0x80000000n],
+ [0x100000001n, -0x80000000n, -0x7fffffffn],
+ [0x7ffffffffffffffen, -0x80000000n, -2n],
+ [0x7fffffffffffffffn, -0x80000000n, -1n],
+ [0x8000000000000000n, -0x80000000n, -0x80000000n],
+ [0x8000000000000001n, -0x80000000n, -0x7fffffffn],
+ [0xfffffffffffffffen, -0x80000000n, -2n],
+ [0xffffffffffffffffn, -0x80000000n, -1n],
+ [0x10000000000000000n, -0x80000000n, -0x80000000n],
+ [0x10000000000000001n, -0x80000000n, -0x7fffffffn],
+ [-0x10000000000000001n, -0x7fffffffn, -1n],
+ [-0x10000000000000000n, -0x7fffffffn, -0x7fffffffn],
+ [-0xffffffffffffffffn, -0x7fffffffn, -0x7fffffffn],
+ [-0xfffffffffffffffen, -0x7fffffffn, -0x7ffffffdn],
+ [-0x8000000000000001n, -0x7fffffffn, -1n],
+ [-0x8000000000000000n, -0x7fffffffn, -0x7fffffffn],
+ [-0x7fffffffffffffffn, -0x7fffffffn, -0x7fffffffn],
+ [-0x7ffffffffffffffen, -0x7fffffffn, -0x7ffffffdn],
+ [-0x100000001n, -0x7fffffffn, -1n],
+ [-0x100000000n, -0x7fffffffn, -0x7fffffffn],
+ [-0xffffffffn, -0x7fffffffn, -0x7fffffffn],
+ [-0xfffffffen, -0x7fffffffn, -0x7ffffffdn],
+ [-0x7fffffffn, -0x7fffffffn, -0x7fffffffn],
+ [-0x7ffffffen, -0x7fffffffn, -0x7ffffffdn],
+ [0xfffffffen, -0x7fffffffn, -1n],
+ [0xffffffffn, -0x7fffffffn, -1n],
+ [0x100000000n, -0x7fffffffn, -0x7fffffffn],
+ [0x100000001n, -0x7fffffffn, -0x7fffffffn],
+ [0x7ffffffffffffffen, -0x7fffffffn, -1n],
+ [0x7fffffffffffffffn, -0x7fffffffn, -1n],
+ [0x8000000000000000n, -0x7fffffffn, -0x7fffffffn],
+ [0x8000000000000001n, -0x7fffffffn, -0x7fffffffn],
+ [0xfffffffffffffffen, -0x7fffffffn, -1n],
+ [0xffffffffffffffffn, -0x7fffffffn, -1n],
+ [0x10000000000000000n, -0x7fffffffn, -0x7fffffffn],
+ [0x10000000000000001n, -0x7fffffffn, -0x7fffffffn],
+ [-0x10000000000000001n, -0x7ffffffen, -1n],
+ [-0x10000000000000000n, -0x7ffffffen, -0x7ffffffen],
+ [-0xffffffffffffffffn, -0x7ffffffen, -0x7ffffffdn],
+ [-0xfffffffffffffffen, -0x7ffffffen, -0x7ffffffen],
+ [-0x8000000000000001n, -0x7ffffffen, -1n],
+ [-0x8000000000000000n, -0x7ffffffen, -0x7ffffffen],
+ [-0x7fffffffffffffffn, -0x7ffffffen, -0x7ffffffdn],
+ [-0x7ffffffffffffffen, -0x7ffffffen, -0x7ffffffen],
+ [-0x100000001n, -0x7ffffffen, -1n],
+ [-0x100000000n, -0x7ffffffen, -0x7ffffffen],
+ [-0xffffffffn, -0x7ffffffen, -0x7ffffffdn],
+ [-0xfffffffen, -0x7ffffffen, -0x7ffffffen],
+ [-0x7ffffffen, -0x7ffffffen, -0x7ffffffen],
+ [0xfffffffen, -0x7ffffffen, -2n],
+ [0xffffffffn, -0x7ffffffen, -1n],
+ [0x100000000n, -0x7ffffffen, -0x7ffffffen],
+ [0x100000001n, -0x7ffffffen, -0x7ffffffdn],
+ [0x7ffffffffffffffen, -0x7ffffffen, -2n],
+ [0x7fffffffffffffffn, -0x7ffffffen, -1n],
+ [0x8000000000000000n, -0x7ffffffen, -0x7ffffffen],
+ [0x8000000000000001n, -0x7ffffffen, -0x7ffffffdn],
+ [0xfffffffffffffffen, -0x7ffffffen, -2n],
+ [0xffffffffffffffffn, -0x7ffffffen, -1n],
+ [0x10000000000000000n, -0x7ffffffen, -0x7ffffffen],
+ [0x10000000000000001n, -0x7ffffffen, -0x7ffffffdn],
+ [-0x10000000000000001n, 0xfffffffen, -0x10000000000000001n],
+ [-0x10000000000000000n, 0xfffffffen, -0xffffffff00000002n],
+ [-0xffffffffffffffffn, 0xfffffffen, -0xffffffff00000001n],
+ [-0xfffffffffffffffen, 0xfffffffen, -0xffffffff00000002n],
+ [-0x8000000000000001n, 0xfffffffen, -0x8000000000000001n],
+ [-0x8000000000000000n, 0xfffffffen, -0x7fffffff00000002n],
+ [-0x7fffffffffffffffn, 0xfffffffen, -0x7fffffff00000001n],
+ [-0x7ffffffffffffffen, 0xfffffffen, -0x7fffffff00000002n],
+ [-0x100000001n, 0xfffffffen, -0x100000001n],
+ [-0x100000000n, 0xfffffffen, -2n],
+ [-0xffffffffn, 0xfffffffen, -1n],
+ [-0xfffffffen, 0xfffffffen, -2n],
+ [0xfffffffen, 0xfffffffen, 0xfffffffen],
+ [0xffffffffn, 0xfffffffen, 0xffffffffn],
+ [0x100000000n, 0xfffffffen, 0x1fffffffen],
+ [0x100000001n, 0xfffffffen, 0x1ffffffffn],
+ [0x7ffffffffffffffen, 0xfffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0xfffffffen, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0xfffffffen, 0x80000000fffffffen],
+ [0x8000000000000001n, 0xfffffffen, 0x80000000ffffffffn],
+ [0xfffffffffffffffen, 0xfffffffen, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0xfffffffen, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0xfffffffen, 0x100000000fffffffen],
+ [0x10000000000000001n, 0xfffffffen, 0x100000000ffffffffn],
+ [-0x10000000000000001n, 0xffffffffn, -0x10000000000000001n],
+ [-0x10000000000000000n, 0xffffffffn, -0xffffffff00000001n],
+ [-0xffffffffffffffffn, 0xffffffffn, -0xffffffff00000001n],
+ [-0xfffffffffffffffen, 0xffffffffn, -0xffffffff00000001n],
+ [-0x8000000000000001n, 0xffffffffn, -0x8000000000000001n],
+ [-0x8000000000000000n, 0xffffffffn, -0x7fffffff00000001n],
+ [-0x7fffffffffffffffn, 0xffffffffn, -0x7fffffff00000001n],
+ [-0x7ffffffffffffffen, 0xffffffffn, -0x7fffffff00000001n],
+ [-0x100000001n, 0xffffffffn, -0x100000001n],
+ [-0x100000000n, 0xffffffffn, -1n],
+ [-0xffffffffn, 0xffffffffn, -1n],
+ [-0xfffffffen, 0xffffffffn, -1n],
+ [0xffffffffn, 0xffffffffn, 0xffffffffn],
+ [0x100000000n, 0xffffffffn, 0x1ffffffffn],
+ [0x100000001n, 0xffffffffn, 0x1ffffffffn],
+ [0x7ffffffffffffffen, 0xffffffffn, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 0xffffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0xffffffffn, 0x80000000ffffffffn],
+ [0x8000000000000001n, 0xffffffffn, 0x80000000ffffffffn],
+ [0xfffffffffffffffen, 0xffffffffn, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 0xffffffffn, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0xffffffffn, 0x100000000ffffffffn],
+ [0x10000000000000001n, 0xffffffffn, 0x100000000ffffffffn],
+ [-0x10000000000000001n, 0x100000000n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x100000000n, -0xffffffff00000000n],
+ [-0xffffffffffffffffn, 0x100000000n, -0xfffffffeffffffffn],
+ [-0xfffffffffffffffen, 0x100000000n, -0xfffffffefffffffen],
+ [-0x8000000000000001n, 0x100000000n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x100000000n, -0x7fffffff00000000n],
+ [-0x7fffffffffffffffn, 0x100000000n, -0x7ffffffeffffffffn],
+ [-0x7ffffffffffffffen, 0x100000000n, -0x7ffffffefffffffen],
+ [-0x100000001n, 0x100000000n, -1n],
+ [-0x100000000n, 0x100000000n, -0x100000000n],
+ [-0xffffffffn, 0x100000000n, -0xffffffffn],
+ [-0xfffffffen, 0x100000000n, -0xfffffffen],
+ [0x100000000n, 0x100000000n, 0x100000000n],
+ [0x100000001n, 0x100000000n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x100000000n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x100000000n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x100000000n, 0x8000000100000000n],
+ [0x8000000000000001n, 0x100000000n, 0x8000000100000001n],
+ [0xfffffffffffffffen, 0x100000000n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0x100000000n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x100000000n, 0x10000000100000000n],
+ [0x10000000000000001n, 0x100000000n, 0x10000000100000001n],
+ [-0x10000000000000001n, 0x100000001n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x100000001n, -0xfffffffeffffffffn],
+ [-0xffffffffffffffffn, 0x100000001n, -0xfffffffeffffffffn],
+ [-0xfffffffffffffffen, 0x100000001n, -0xfffffffefffffffdn],
+ [-0x8000000000000001n, 0x100000001n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x100000001n, -0x7ffffffeffffffffn],
+ [-0x7fffffffffffffffn, 0x100000001n, -0x7ffffffeffffffffn],
+ [-0x7ffffffffffffffen, 0x100000001n, -0x7ffffffefffffffdn],
+ [-0x100000001n, 0x100000001n, -1n],
+ [-0x100000000n, 0x100000001n, -0xffffffffn],
+ [-0xffffffffn, 0x100000001n, -0xffffffffn],
+ [-0xfffffffen, 0x100000001n, -0xfffffffdn],
+ [0x100000001n, 0x100000001n, 0x100000001n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 0x100000001n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x100000001n, 0x8000000100000001n],
+ [0x8000000000000001n, 0x100000001n, 0x8000000100000001n],
+ [0xfffffffffffffffen, 0x100000001n, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 0x100000001n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x100000001n, 0x10000000100000001n],
+ [0x10000000000000001n, 0x100000001n, 0x10000000100000001n],
+ [-0x10000000000000001n, -0x100000001n, -1n],
+ [-0x10000000000000000n, -0x100000001n, -0x100000001n],
+ [-0xffffffffffffffffn, -0x100000001n, -0x100000001n],
+ [-0xfffffffffffffffen, -0x100000001n, -0x100000001n],
+ [-0x8000000000000001n, -0x100000001n, -1n],
+ [-0x8000000000000000n, -0x100000001n, -0x100000001n],
+ [-0x7fffffffffffffffn, -0x100000001n, -0x100000001n],
+ [-0x7ffffffffffffffen, -0x100000001n, -0x100000001n],
+ [-0x100000001n, -0x100000001n, -0x100000001n],
+ [-0x100000000n, -0x100000001n, -1n],
+ [-0xffffffffn, -0x100000001n, -1n],
+ [-0xfffffffen, -0x100000001n, -1n],
+ [0x7ffffffffffffffen, -0x100000001n, -1n],
+ [0x7fffffffffffffffn, -0x100000001n, -1n],
+ [0x8000000000000000n, -0x100000001n, -0x100000001n],
+ [0x8000000000000001n, -0x100000001n, -0x100000001n],
+ [0xfffffffffffffffen, -0x100000001n, -1n],
+ [0xffffffffffffffffn, -0x100000001n, -1n],
+ [0x10000000000000000n, -0x100000001n, -0x100000001n],
+ [0x10000000000000001n, -0x100000001n, -0x100000001n],
+ [-0x10000000000000001n, -0x100000000n, -1n],
+ [-0x10000000000000000n, -0x100000000n, -0x100000000n],
+ [-0xffffffffffffffffn, -0x100000000n, -0xffffffffn],
+ [-0xfffffffffffffffen, -0x100000000n, -0xfffffffen],
+ [-0x8000000000000001n, -0x100000000n, -1n],
+ [-0x8000000000000000n, -0x100000000n, -0x100000000n],
+ [-0x7fffffffffffffffn, -0x100000000n, -0xffffffffn],
+ [-0x7ffffffffffffffen, -0x100000000n, -0xfffffffen],
+ [-0x100000000n, -0x100000000n, -0x100000000n],
+ [-0xffffffffn, -0x100000000n, -0xffffffffn],
+ [-0xfffffffen, -0x100000000n, -0xfffffffen],
+ [0x7ffffffffffffffen, -0x100000000n, -2n],
+ [0x7fffffffffffffffn, -0x100000000n, -1n],
+ [0x8000000000000000n, -0x100000000n, -0x100000000n],
+ [0x8000000000000001n, -0x100000000n, -0xffffffffn],
+ [0xfffffffffffffffen, -0x100000000n, -2n],
+ [0xffffffffffffffffn, -0x100000000n, -1n],
+ [0x10000000000000000n, -0x100000000n, -0x100000000n],
+ [0x10000000000000001n, -0x100000000n, -0xffffffffn],
+ [-0x10000000000000001n, -0xffffffffn, -1n],
+ [-0x10000000000000000n, -0xffffffffn, -0xffffffffn],
+ [-0xffffffffffffffffn, -0xffffffffn, -0xffffffffn],
+ [-0xfffffffffffffffen, -0xffffffffn, -0xfffffffdn],
+ [-0x8000000000000001n, -0xffffffffn, -1n],
+ [-0x8000000000000000n, -0xffffffffn, -0xffffffffn],
+ [-0x7fffffffffffffffn, -0xffffffffn, -0xffffffffn],
+ [-0x7ffffffffffffffen, -0xffffffffn, -0xfffffffdn],
+ [-0xffffffffn, -0xffffffffn, -0xffffffffn],
+ [-0xfffffffen, -0xffffffffn, -0xfffffffdn],
+ [0x7ffffffffffffffen, -0xffffffffn, -1n],
+ [0x7fffffffffffffffn, -0xffffffffn, -1n],
+ [0x8000000000000000n, -0xffffffffn, -0xffffffffn],
+ [0x8000000000000001n, -0xffffffffn, -0xffffffffn],
+ [0xfffffffffffffffen, -0xffffffffn, -1n],
+ [0xffffffffffffffffn, -0xffffffffn, -1n],
+ [0x10000000000000000n, -0xffffffffn, -0xffffffffn],
+ [0x10000000000000001n, -0xffffffffn, -0xffffffffn],
+ [-0x10000000000000001n, -0xfffffffen, -1n],
+ [-0x10000000000000000n, -0xfffffffen, -0xfffffffen],
+ [-0xffffffffffffffffn, -0xfffffffen, -0xfffffffdn],
+ [-0xfffffffffffffffen, -0xfffffffen, -0xfffffffen],
+ [-0x8000000000000001n, -0xfffffffen, -1n],
+ [-0x8000000000000000n, -0xfffffffen, -0xfffffffen],
+ [-0x7fffffffffffffffn, -0xfffffffen, -0xfffffffdn],
+ [-0x7ffffffffffffffen, -0xfffffffen, -0xfffffffen],
+ [-0xfffffffen, -0xfffffffen, -0xfffffffen],
+ [0x7ffffffffffffffen, -0xfffffffen, -2n],
+ [0x7fffffffffffffffn, -0xfffffffen, -1n],
+ [0x8000000000000000n, -0xfffffffen, -0xfffffffen],
+ [0x8000000000000001n, -0xfffffffen, -0xfffffffdn],
+ [0xfffffffffffffffen, -0xfffffffen, -2n],
+ [0xffffffffffffffffn, -0xfffffffen, -1n],
+ [0x10000000000000000n, -0xfffffffen, -0xfffffffen],
+ [0x10000000000000001n, -0xfffffffen, -0xfffffffdn],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, -0x8000000000000002n],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, -0x8000000000000001n],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, -0x8000000000000002n],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, -2n],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, -1n],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, -2n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 0xfffffffffffffffen],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 0xffffffffffffffffn],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 0x17ffffffffffffffen],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 0x17fffffffffffffffn],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, -0x8000000000000001n],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, -0x8000000000000001n],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, -0x8000000000000001n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, -0x8000000000000001n],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, -1n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, -1n],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, -1n],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 0xffffffffffffffffn],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 0xffffffffffffffffn],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 0x17fffffffffffffffn],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 0x17fffffffffffffffn],
+ [-0x10000000000000001n, 0x8000000000000000n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x8000000000000000n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, 0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x8000000000000001n, 0x8000000000000000n, -1n],
+ [-0x8000000000000000n, 0x8000000000000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, -0x7ffffffffffffffen],
+ [0x8000000000000000n, 0x8000000000000000n, 0x8000000000000000n],
+ [0x8000000000000001n, 0x8000000000000000n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0x8000000000000000n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x8000000000000000n, 0x18000000000000000n],
+ [0x10000000000000001n, 0x8000000000000000n, 0x18000000000000001n],
+ [-0x10000000000000001n, 0x8000000000000001n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, 0x8000000000000001n, -0x7ffffffffffffffdn],
+ [-0x8000000000000001n, 0x8000000000000001n, -1n],
+ [-0x8000000000000000n, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, -0x7ffffffffffffffdn],
+ [0x8000000000000001n, 0x8000000000000001n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 0x8000000000000001n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0x8000000000000001n, 0x18000000000000001n],
+ [0x10000000000000001n, 0x8000000000000001n, 0x18000000000000001n],
+ [-0x10000000000000001n, -0x8000000000000001n, -1n],
+ [-0x10000000000000000n, -0x8000000000000001n, -0x8000000000000001n],
+ [-0xffffffffffffffffn, -0x8000000000000001n, -0x8000000000000001n],
+ [-0xfffffffffffffffen, -0x8000000000000001n, -0x8000000000000001n],
+ [-0x8000000000000001n, -0x8000000000000001n, -0x8000000000000001n],
+ [-0x8000000000000000n, -0x8000000000000001n, -1n],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, -1n],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, -1n],
+ [0xfffffffffffffffen, -0x8000000000000001n, -1n],
+ [0xffffffffffffffffn, -0x8000000000000001n, -1n],
+ [0x10000000000000000n, -0x8000000000000001n, -0x8000000000000001n],
+ [0x10000000000000001n, -0x8000000000000001n, -0x8000000000000001n],
+ [-0x10000000000000001n, -0x8000000000000000n, -1n],
+ [-0x10000000000000000n, -0x8000000000000000n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, -0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x8000000000000000n, -0x8000000000000000n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, -0x7ffffffffffffffen],
+ [0xfffffffffffffffen, -0x8000000000000000n, -2n],
+ [0xffffffffffffffffn, -0x8000000000000000n, -1n],
+ [0x10000000000000000n, -0x8000000000000000n, -0x8000000000000000n],
+ [0x10000000000000001n, -0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, -1n],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, -0x7ffffffffffffffdn],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, -0x7ffffffffffffffdn],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, -1n],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, -1n],
+ [0x10000000000000000n, -0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [0x10000000000000001n, -0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, -1n],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, -0x7ffffffffffffffdn],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, -2n],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, -1n],
+ [0x10000000000000000n, -0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [0x10000000000000001n, -0x7ffffffffffffffen, -0x7ffffffffffffffdn],
+ [-0x10000000000000001n, 0xfffffffffffffffen, -0x10000000000000001n],
+ [-0x10000000000000000n, 0xfffffffffffffffen, -2n],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, -1n],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, -2n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0xfffffffffffffffen, 0x1fffffffffffffffen],
+ [0x10000000000000001n, 0xfffffffffffffffen, 0x1ffffffffffffffffn],
+ [-0x10000000000000001n, 0xffffffffffffffffn, -0x10000000000000001n],
+ [-0x10000000000000000n, 0xffffffffffffffffn, -1n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, -1n],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, -1n],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0xffffffffffffffffn, 0x1ffffffffffffffffn],
+ [0x10000000000000001n, 0xffffffffffffffffn, 0x1ffffffffffffffffn],
+ [-0x10000000000000001n, 0x10000000000000000n, -1n],
+ [-0x10000000000000000n, 0x10000000000000000n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0x10000000000000000n, -0xfffffffffffffffen],
+ [0x10000000000000000n, 0x10000000000000000n, 0x10000000000000000n],
+ [0x10000000000000001n, 0x10000000000000000n, 0x10000000000000001n],
+ [-0x10000000000000001n, 0x10000000000000001n, -1n],
+ [-0x10000000000000000n, 0x10000000000000001n, -0xffffffffffffffffn],
+ [-0xffffffffffffffffn, 0x10000000000000001n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0x10000000000000001n, -0xfffffffffffffffdn],
+ [0x10000000000000001n, 0x10000000000000001n, 0x10000000000000001n],
+ [-0x10000000000000001n, -0x10000000000000001n, -0x10000000000000001n],
+ [-0x10000000000000000n, -0x10000000000000001n, -1n],
+ [-0xffffffffffffffffn, -0x10000000000000001n, -1n],
+ [-0xfffffffffffffffen, -0x10000000000000001n, -1n],
+ [-0x10000000000000000n, -0x10000000000000000n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0x10000000000000000n, -0xfffffffffffffffen],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, -0xfffffffffffffffdn],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, -0xfffffffffffffffen],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs | rhs, expected);
+ assertEq(rhs | lhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-pow-bailout.js b/js/src/jit-test/tests/bigint/bigint-pow-bailout.js
new file mode 100644
index 0000000000..f88f6762dd
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-pow-bailout.js
@@ -0,0 +1,31 @@
+// |jit-test| --ion-warmup-threshold=20
+
+function testBailout() {
+ function f(v, r) {
+ for (var i = 0; i < 50; ++i) {
+ // Ensure DCE and LICM don't eliminate exponentiation when the power is negative.
+ if (i === 0) {
+ r();
+ }
+ 1n ** v;
+ 1n ** v;
+ 1n ** v;
+ }
+ }
+
+ var result = [];
+ function r() {
+ result.push("ok");
+ }
+
+ do {
+ result.length = 0;
+ try {
+ f(1n, r);
+ f(1n, r);
+ f(-1n, r);
+ } catch (e) {}
+ assertEq(result.length, 3);
+ } while (!inIon());
+}
+testBailout();
diff --git a/js/src/jit-test/tests/bigint/bigint-pow-negative-exponent.js b/js/src/jit-test/tests/bigint/bigint-pow-negative-exponent.js
new file mode 100644
index 0000000000..55dd0488c3
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-pow-negative-exponent.js
@@ -0,0 +1,16 @@
+// Fallible BigInt exponentiation should have a resume point and its alias set
+// should record that exceptions can be thrown.
+function resumeAfterException(t) {
+ for (var i = 0; i < 2; i++) {
+ try {
+ var x = 1;
+ 1n ** 1n;
+ x = 2;
+ 1n ** t;
+ } catch (e) {
+ assertEq(x, 2);
+ }
+ }
+}
+resumeAfterException(1n);
+resumeAfterException(-1n);
diff --git a/js/src/jit-test/tests/bigint/bigint-pow.js b/js/src/jit-test/tests/bigint/bigint-pow.js
new file mode 100644
index 0000000000..7c0d7b5eeb
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-pow.js
@@ -0,0 +1,527 @@
+const tests = [
+ [-0x10000000000000001n, 0n, 1n],
+ [-0x10000000000000000n, 0n, 1n],
+ [-0xffffffffffffffffn, 0n, 1n],
+ [-0xfffffffffffffffen, 0n, 1n],
+ [-0x8000000000000001n, 0n, 1n],
+ [-0x8000000000000000n, 0n, 1n],
+ [-0x7fffffffffffffffn, 0n, 1n],
+ [-0x7ffffffffffffffen, 0n, 1n],
+ [-0x100000001n, 0n, 1n],
+ [-0x100000000n, 0n, 1n],
+ [-0xffffffffn, 0n, 1n],
+ [-0xfffffffen, 0n, 1n],
+ [-0x80000001n, 0n, 1n],
+ [-0x80000000n, 0n, 1n],
+ [-0x7fffffffn, 0n, 1n],
+ [-0x7ffffffen, 0n, 1n],
+ [-9n, 0n, 1n],
+ [-8n, 0n, 1n],
+ [-7n, 0n, 1n],
+ [-6n, 0n, 1n],
+ [-5n, 0n, 1n],
+ [-4n, 0n, 1n],
+ [-3n, 0n, 1n],
+ [-2n, 0n, 1n],
+ [-1n, 0n, 1n],
+ [0n, 0n, 1n],
+ [1n, 0n, 1n],
+ [2n, 0n, 1n],
+ [3n, 0n, 1n],
+ [4n, 0n, 1n],
+ [5n, 0n, 1n],
+ [6n, 0n, 1n],
+ [7n, 0n, 1n],
+ [8n, 0n, 1n],
+ [9n, 0n, 1n],
+ [0x7ffffffen, 0n, 1n],
+ [0x7fffffffn, 0n, 1n],
+ [0x80000000n, 0n, 1n],
+ [0x80000001n, 0n, 1n],
+ [0xfffffffen, 0n, 1n],
+ [0xffffffffn, 0n, 1n],
+ [0x100000000n, 0n, 1n],
+ [0x100000001n, 0n, 1n],
+ [0x7ffffffffffffffen, 0n, 1n],
+ [0x7fffffffffffffffn, 0n, 1n],
+ [0x8000000000000000n, 0n, 1n],
+ [0x8000000000000001n, 0n, 1n],
+ [0xfffffffffffffffen, 0n, 1n],
+ [0xffffffffffffffffn, 0n, 1n],
+ [0x10000000000000000n, 0n, 1n],
+ [0x10000000000000001n, 0n, 1n],
+ [-0x10000000000000001n, 1n, -0x10000000000000001n],
+ [-0x10000000000000000n, 1n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 1n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 1n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 1n, -0x8000000000000001n],
+ [-0x8000000000000000n, 1n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 1n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 1n, -0x7ffffffffffffffen],
+ [-0x100000001n, 1n, -0x100000001n],
+ [-0x100000000n, 1n, -0x100000000n],
+ [-0xffffffffn, 1n, -0xffffffffn],
+ [-0xfffffffen, 1n, -0xfffffffen],
+ [-0x80000001n, 1n, -0x80000001n],
+ [-0x80000000n, 1n, -0x80000000n],
+ [-0x7fffffffn, 1n, -0x7fffffffn],
+ [-0x7ffffffen, 1n, -0x7ffffffen],
+ [-9n, 1n, -9n],
+ [-8n, 1n, -8n],
+ [-7n, 1n, -7n],
+ [-6n, 1n, -6n],
+ [-5n, 1n, -5n],
+ [-4n, 1n, -4n],
+ [-3n, 1n, -3n],
+ [-2n, 1n, -2n],
+ [-1n, 1n, -1n],
+ [0n, 1n, 0n],
+ [1n, 1n, 1n],
+ [2n, 1n, 2n],
+ [3n, 1n, 3n],
+ [4n, 1n, 4n],
+ [5n, 1n, 5n],
+ [6n, 1n, 6n],
+ [7n, 1n, 7n],
+ [8n, 1n, 8n],
+ [9n, 1n, 9n],
+ [0x7ffffffen, 1n, 0x7ffffffen],
+ [0x7fffffffn, 1n, 0x7fffffffn],
+ [0x80000000n, 1n, 0x80000000n],
+ [0x80000001n, 1n, 0x80000001n],
+ [0xfffffffen, 1n, 0xfffffffen],
+ [0xffffffffn, 1n, 0xffffffffn],
+ [0x100000000n, 1n, 0x100000000n],
+ [0x100000001n, 1n, 0x100000001n],
+ [0x7ffffffffffffffen, 1n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 1n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 1n, 0x8000000000000000n],
+ [0x8000000000000001n, 1n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 1n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 1n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 1n, 0x10000000000000000n],
+ [0x10000000000000001n, 1n, 0x10000000000000001n],
+ [-0x10000000000000001n, 2n, 0x100000000000000020000000000000001n],
+ [-0x10000000000000000n, 2n, 0x100000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 2n, 0xfffffffffffffffe0000000000000001n],
+ [-0xfffffffffffffffen, 2n, 0xfffffffffffffffc0000000000000004n],
+ [-0x8000000000000001n, 2n, 0x40000000000000010000000000000001n],
+ [-0x8000000000000000n, 2n, 0x40000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 2n, 0x3fffffffffffffff0000000000000001n],
+ [-0x7ffffffffffffffen, 2n, 0x3ffffffffffffffe0000000000000004n],
+ [-0x100000001n, 2n, 0x10000000200000001n],
+ [-0x100000000n, 2n, 0x10000000000000000n],
+ [-0xffffffffn, 2n, 0xfffffffe00000001n],
+ [-0xfffffffen, 2n, 0xfffffffc00000004n],
+ [-0x80000001n, 2n, 0x4000000100000001n],
+ [-0x80000000n, 2n, 0x4000000000000000n],
+ [-0x7fffffffn, 2n, 0x3fffffff00000001n],
+ [-0x7ffffffen, 2n, 0x3ffffffe00000004n],
+ [-9n, 2n, 81n],
+ [-8n, 2n, 64n],
+ [-7n, 2n, 49n],
+ [-6n, 2n, 36n],
+ [-5n, 2n, 25n],
+ [-4n, 2n, 16n],
+ [-3n, 2n, 9n],
+ [-2n, 2n, 4n],
+ [-1n, 2n, 1n],
+ [0n, 2n, 0n],
+ [1n, 2n, 1n],
+ [2n, 2n, 4n],
+ [3n, 2n, 9n],
+ [4n, 2n, 16n],
+ [5n, 2n, 25n],
+ [6n, 2n, 36n],
+ [7n, 2n, 49n],
+ [8n, 2n, 64n],
+ [9n, 2n, 81n],
+ [0x7ffffffen, 2n, 0x3ffffffe00000004n],
+ [0x7fffffffn, 2n, 0x3fffffff00000001n],
+ [0x80000000n, 2n, 0x4000000000000000n],
+ [0x80000001n, 2n, 0x4000000100000001n],
+ [0xfffffffen, 2n, 0xfffffffc00000004n],
+ [0xffffffffn, 2n, 0xfffffffe00000001n],
+ [0x100000000n, 2n, 0x10000000000000000n],
+ [0x100000001n, 2n, 0x10000000200000001n],
+ [0x7ffffffffffffffen, 2n, 0x3ffffffffffffffe0000000000000004n],
+ [0x7fffffffffffffffn, 2n, 0x3fffffffffffffff0000000000000001n],
+ [0x8000000000000000n, 2n, 0x40000000000000000000000000000000n],
+ [0x8000000000000001n, 2n, 0x40000000000000010000000000000001n],
+ [0xfffffffffffffffen, 2n, 0xfffffffffffffffc0000000000000004n],
+ [0xffffffffffffffffn, 2n, 0xfffffffffffffffe0000000000000001n],
+ [0x10000000000000000n, 2n, 0x100000000000000000000000000000000n],
+ [0x10000000000000001n, 2n, 0x100000000000000020000000000000001n],
+ [-0x10000000000000001n, 3n, -0x1000000000000000300000000000000030000000000000001n],
+ [-0x10000000000000000n, 3n, -0x1000000000000000000000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 3n, -0xfffffffffffffffd0000000000000002ffffffffffffffffn],
+ [-0xfffffffffffffffen, 3n, -0xfffffffffffffffa000000000000000bfffffffffffffff8n],
+ [-0x8000000000000001n, 3n, -0x2000000000000000c0000000000000018000000000000001n],
+ [-0x8000000000000000n, 3n, -0x200000000000000000000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 3n, -0x1fffffffffffffff40000000000000017fffffffffffffffn],
+ [-0x7ffffffffffffffen, 3n, -0x1ffffffffffffffe8000000000000005fffffffffffffff8n],
+ [-0x100000001n, 3n, -0x1000000030000000300000001n],
+ [-0x100000000n, 3n, -0x1000000000000000000000000n],
+ [-0xffffffffn, 3n, -0xfffffffd00000002ffffffffn],
+ [-0xfffffffen, 3n, -0xfffffffa0000000bfffffff8n],
+ [-0x80000001n, 3n, -0x20000000c000000180000001n],
+ [-0x80000000n, 3n, -0x200000000000000000000000n],
+ [-0x7fffffffn, 3n, -0x1fffffff400000017fffffffn],
+ [-0x7ffffffen, 3n, -0x1ffffffe80000005fffffff8n],
+ [-9n, 3n, -729n],
+ [-8n, 3n, -512n],
+ [-7n, 3n, -343n],
+ [-6n, 3n, -216n],
+ [-5n, 3n, -125n],
+ [-4n, 3n, -64n],
+ [-3n, 3n, -27n],
+ [-2n, 3n, -8n],
+ [-1n, 3n, -1n],
+ [0n, 3n, 0n],
+ [1n, 3n, 1n],
+ [2n, 3n, 8n],
+ [3n, 3n, 27n],
+ [4n, 3n, 64n],
+ [5n, 3n, 125n],
+ [6n, 3n, 216n],
+ [7n, 3n, 343n],
+ [8n, 3n, 512n],
+ [9n, 3n, 729n],
+ [0x7ffffffen, 3n, 0x1ffffffe80000005fffffff8n],
+ [0x7fffffffn, 3n, 0x1fffffff400000017fffffffn],
+ [0x80000000n, 3n, 0x200000000000000000000000n],
+ [0x80000001n, 3n, 0x20000000c000000180000001n],
+ [0xfffffffen, 3n, 0xfffffffa0000000bfffffff8n],
+ [0xffffffffn, 3n, 0xfffffffd00000002ffffffffn],
+ [0x100000000n, 3n, 0x1000000000000000000000000n],
+ [0x100000001n, 3n, 0x1000000030000000300000001n],
+ [0x7ffffffffffffffen, 3n, 0x1ffffffffffffffe8000000000000005fffffffffffffff8n],
+ [0x7fffffffffffffffn, 3n, 0x1fffffffffffffff40000000000000017fffffffffffffffn],
+ [0x8000000000000000n, 3n, 0x200000000000000000000000000000000000000000000000n],
+ [0x8000000000000001n, 3n, 0x2000000000000000c0000000000000018000000000000001n],
+ [0xfffffffffffffffen, 3n, 0xfffffffffffffffa000000000000000bfffffffffffffff8n],
+ [0xffffffffffffffffn, 3n, 0xfffffffffffffffd0000000000000002ffffffffffffffffn],
+ [0x10000000000000000n, 3n, 0x1000000000000000000000000000000000000000000000000n],
+ [0x10000000000000001n, 3n, 0x1000000000000000300000000000000030000000000000001n],
+ [-0x10000000000000001n, 4n, 0x10000000000000004000000000000000600000000000000040000000000000001n],
+ [-0x10000000000000000n, 4n, 0x10000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 4n, 0xfffffffffffffffc0000000000000005fffffffffffffffc0000000000000001n],
+ [-0xfffffffffffffffen, 4n, 0xfffffffffffffff80000000000000017ffffffffffffffe00000000000000010n],
+ [-0x8000000000000001n, 4n, 0x1000000000000000800000000000000180000000000000020000000000000001n],
+ [-0x8000000000000000n, 4n, 0x1000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 4n, 0xfffffffffffffff80000000000000017ffffffffffffffe0000000000000001n],
+ [-0x7ffffffffffffffen, 4n, 0xfffffffffffffff0000000000000005fffffffffffffff00000000000000010n],
+ [-0x100000001n, 4n, 0x100000004000000060000000400000001n],
+ [-0x100000000n, 4n, 0x100000000000000000000000000000000n],
+ [-0xffffffffn, 4n, 0xfffffffc00000005fffffffc00000001n],
+ [-0xfffffffen, 4n, 0xfffffff800000017ffffffe000000010n],
+ [-0x80000001n, 4n, 0x10000000800000018000000200000001n],
+ [-0x80000000n, 4n, 0x10000000000000000000000000000000n],
+ [-0x7fffffffn, 4n, 0xfffffff800000017ffffffe00000001n],
+ [-0x7ffffffen, 4n, 0xfffffff00000005fffffff000000010n],
+ [-9n, 4n, 0x19a1n],
+ [-8n, 4n, 0x1000n],
+ [-7n, 4n, 0x961n],
+ [-6n, 4n, 0x510n],
+ [-5n, 4n, 625n],
+ [-4n, 4n, 256n],
+ [-3n, 4n, 81n],
+ [-2n, 4n, 16n],
+ [-1n, 4n, 1n],
+ [0n, 4n, 0n],
+ [1n, 4n, 1n],
+ [2n, 4n, 16n],
+ [3n, 4n, 81n],
+ [4n, 4n, 256n],
+ [5n, 4n, 625n],
+ [6n, 4n, 0x510n],
+ [7n, 4n, 0x961n],
+ [8n, 4n, 0x1000n],
+ [9n, 4n, 0x19a1n],
+ [0x7ffffffen, 4n, 0xfffffff00000005fffffff000000010n],
+ [0x7fffffffn, 4n, 0xfffffff800000017ffffffe00000001n],
+ [0x80000000n, 4n, 0x10000000000000000000000000000000n],
+ [0x80000001n, 4n, 0x10000000800000018000000200000001n],
+ [0xfffffffen, 4n, 0xfffffff800000017ffffffe000000010n],
+ [0xffffffffn, 4n, 0xfffffffc00000005fffffffc00000001n],
+ [0x100000000n, 4n, 0x100000000000000000000000000000000n],
+ [0x100000001n, 4n, 0x100000004000000060000000400000001n],
+ [0x7ffffffffffffffen, 4n, 0xfffffffffffffff0000000000000005fffffffffffffff00000000000000010n],
+ [0x7fffffffffffffffn, 4n, 0xfffffffffffffff80000000000000017ffffffffffffffe0000000000000001n],
+ [0x8000000000000000n, 4n, 0x1000000000000000000000000000000000000000000000000000000000000000n],
+ [0x8000000000000001n, 4n, 0x1000000000000000800000000000000180000000000000020000000000000001n],
+ [0xfffffffffffffffen, 4n, 0xfffffffffffffff80000000000000017ffffffffffffffe00000000000000010n],
+ [0xffffffffffffffffn, 4n, 0xfffffffffffffffc0000000000000005fffffffffffffffc0000000000000001n],
+ [0x10000000000000000n, 4n, 0x10000000000000000000000000000000000000000000000000000000000000000n],
+ [0x10000000000000001n, 4n, 0x10000000000000004000000000000000600000000000000040000000000000001n],
+ [-0x10000000000000001n, 31n, -0x1000000000000001f00000000000001d1000000000000118f0000000000007ae900000000000297b700000000000b3c190000000000281fc70000000000785f550000000001339e4b0000000002a4c2a500000000050bff3b000000000869540d000000000c4b2c13000000000fce5d3d0000000011e9e1230000000011e9e123000000000fce5d3d000000000c4b2c13000000000869540d00000000050bff3b0000000002a4c2a50000000001339e4b0000000000785f550000000000281fc700000000000b3c1900000000000297b70000000000007ae9000000000000118f00000000000001d1000000000000001f0000000000000001n],
+ [-0x10000000000000000n, 31n, -0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 31n, -0xffffffffffffffe100000000000001d0ffffffffffffee710000000000007ae8fffffffffffd684900000000000b3c18ffffffffffd7e0390000000000785f54fffffffffecc61b50000000002a4c2a4fffffffffaf400c5000000000869540cfffffffff3b4d3ed000000000fce5d3cffffffffee161edd0000000011e9e122fffffffff031a2c3000000000c4b2c12fffffffff796abf300000000050bff3afffffffffd5b3d5b0000000001339e4affffffffff87a0ab0000000000281fc6fffffffffff4c3e700000000000297b6ffffffffffff8517000000000000118efffffffffffffe2f000000000000001effffffffffffffffn],
+ [-0xfffffffffffffffen, 31n, -0xffffffffffffffc20000000000000743ffffffffffff7388000000000007ae8fffffffffffad09200000000002cf063fffffffffebf01c8000000000785f54fffffffffd98c36a000000000a930a93ffffffffd7a0062800000000869540cffffffffe769a7da000000003f3974f3ffffffff70b0f6e8000000011e9e122ffffffffe063458600000000312cb04bffffffffbcb55f980000000050bff3afffffffffab67ab60000000004ce792bfffffffffc3d0558000000000281fc6ffffffffffe987ce00000000000a5edbfffffffffffc28b800000000000118efffffffffffffc5e000000000000007bfffffffffffffff80000000n],
+ [-0x8000000000000001n, 31n, -0x2000000000000007c0000000000000e8800000000000118f000000000000f5d200000000000a5edc000000000059e0c8000000000281fc70000000000f0beaa0000000004ce792c00000000152615280000000050bff3b0000000010d2a81a00000000312cb04c000000007e72e9e8000000011e9e1230000000023d3c246000000003f3974f4000000006259609800000000869540d000000000a17fe76000000000a930a9400000000099cf258000000000785f550000000000503f8e00000000002cf064000000000014bdb8000000000007ae9000000000000231e000000000000074400000000000000f8000000000000001n],
+ [-0x8000000000000000n, 31n, -0x200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 31n, -0x1ffffffffffffff840000000000000e87fffffffffffee71000000000000f5d1fffffffffff5a124000000000059e0c7fffffffffd7e0390000000000f0bea9fffffffffb3186d40000000015261527ffffffffaf400c50000000010d2a819ffffffffced34fb4000000007e72e9e7fffffffee161edd0000000023d3c245ffffffffc0c68b0c0000000062596097ffffffff796abf3000000000a17fe75fffffffff56cf56c00000000099cf257fffffffff87a0ab0000000000503f8dffffffffffd30f9c000000000014bdb7fffffffffff8517000000000000231dfffffffffffff8bc00000000000000f7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 31n, -0x1ffffffffffffff080000000000003a1ffffffffffff738800000000000f5d1ffffffffffeb4248000000000167831fffffffffebf01c8000000000f0bea9fffffffff6630da8000000005498549ffffffffd7a00628000000010d2a819ffffffff9da69f6800000001f9cba79ffffffff70b0f6e8000000023d3c245ffffffff818d1618000000018965825ffffffffbcb55f9800000000a17fe75ffffffffead9ead8000000002673c95fffffffffc3d0558000000000503f8dffffffffffa61f38000000000052f6dfffffffffffc28b800000000000231dfffffffffffff17800000000000003dfffffffffffffff80000000n],
+ [-0x100000001n, 31n, -0x10000001f000001d10000118f00007ae9000297b7000b3c1900281fc700785f5501339e4b02a4c2a5050bff3b0869540d0c4b2c130fce5d3d11e9e12311e9e1230fce5d3d0c4b2c130869540d050bff3b02a4c2a501339e4b00785f5500281fc7000b3c19000297b700007ae90000118f000001d10000001f00000001n],
+ [-0x100000000n, 31n, -0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffn, 31n, -0xffffffe1000001d0ffffee7100007ae8fffd6849000b3c18ffd7e03900785f54fecc61b502a4c2a4faf400c50869540cf3b4d3ed0fce5d3cee161edd11e9e122f031a2c30c4b2c12f796abf3050bff3afd5b3d5b01339e4aff87a0ab00281fc6fff4c3e7000297b6ffff85170000118efffffe2f0000001effffffffn],
+ [-0xfffffffen, 31n, -0xffffffc200000743ffff73880007ae8fffad092002cf063febf01c80785f54fd98c36a0a930a93d7a00628869540ce769a7da3f3974f370b0f6e91e9e122e0634586312cb04bbcb55f9850bff3afab67ab604ce792bfc3d05580281fc6ffe987ce000a5edbfffc28b8000118efffffc5e0000007bfffffff80000000n],
+ [-0x80000001n, 31n, -0x20000007c00000e88000118f0000f5d2000a5edc0059e0c80281fc700f0beaa04ce792c1526152850bff3b10d2a81a312cb04c7e72e9e91e9e12323d3c2463f3974f462596098869540d0a17fe760a930a94099cf2580785f5500503f8e002cf0640014bdb80007ae90000231e00000744000000f80000001n],
+ [-0x80000000n, 31n, -0x2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffn, 31n, -0x1ffffff8400000e87fffee710000f5d1fff5a1240059e0c7fd7e03900f0bea9fb3186d415261527af400c510d2a819ced34fb47e72e9e6e161edd23d3c245c0c68b0c62596097796abf30a17fe75f56cf56c099cf257f87a0ab00503f8dffd30f9c0014bdb7fff85170000231dfffff8bc000000f7fffffffn],
+ [-0x7ffffffen, 31n, -0x1ffffff0800003a1ffff7388000f5d1ffeb42480167831febf01c80f0bea9f6630da85498549d7a006290d2a8199da69f69f9cba7970b0f6ea3d3c245818d16198965825bcb55f98a17fe75ead9ead82673c95fc3d05580503f8dffa61f380052f6dfffc28b8000231dfffff178000003dfffffff80000000n],
+ [-9n, 31n, -0x4d0c24c65465ae7f329f1a339n],
+ [-8n, 31n, -0x200000000000000000000000n],
+ [-7n, 31n, -0x82823c992d2be80fcb9ab7n],
+ [-6n, 31n, -0x118e2a5afb51580000000n],
+ [-5n, 31n, -0xfc6f7c40458122964dn],
+ [-4n, 31n, -0x4000000000000000n],
+ [-3n, 31n, -0x231c54b5f6a2bn],
+ [-2n, 31n, -0x80000000n],
+ [-1n, 31n, -1n],
+ [0n, 31n, 0n],
+ [1n, 31n, 1n],
+ [2n, 31n, 0x80000000n],
+ [3n, 31n, 0x231c54b5f6a2bn],
+ [4n, 31n, 0x4000000000000000n],
+ [5n, 31n, 0xfc6f7c40458122964dn],
+ [6n, 31n, 0x118e2a5afb51580000000n],
+ [7n, 31n, 0x82823c992d2be80fcb9ab7n],
+ [8n, 31n, 0x200000000000000000000000n],
+ [9n, 31n, 0x4d0c24c65465ae7f329f1a339n],
+ [0x7ffffffen, 31n, 0x1ffffff0800003a1ffff7388000f5d1ffeb42480167831febf01c80f0bea9f6630da85498549d7a006290d2a8199da69f69f9cba7970b0f6ea3d3c245818d16198965825bcb55f98a17fe75ead9ead82673c95fc3d05580503f8dffa61f380052f6dfffc28b8000231dfffff178000003dfffffff80000000n],
+ [0x7fffffffn, 31n, 0x1ffffff8400000e87fffee710000f5d1fff5a1240059e0c7fd7e03900f0bea9fb3186d415261527af400c510d2a819ced34fb47e72e9e6e161edd23d3c245c0c68b0c62596097796abf30a17fe75f56cf56c099cf257f87a0ab00503f8dffd30f9c0014bdb7fff85170000231dfffff8bc000000f7fffffffn],
+ [0x80000000n, 31n, 0x2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x80000001n, 31n, 0x20000007c00000e88000118f0000f5d2000a5edc0059e0c80281fc700f0beaa04ce792c1526152850bff3b10d2a81a312cb04c7e72e9e91e9e12323d3c2463f3974f462596098869540d0a17fe760a930a94099cf2580785f5500503f8e002cf0640014bdb80007ae90000231e00000744000000f80000001n],
+ [0xfffffffen, 31n, 0xffffffc200000743ffff73880007ae8fffad092002cf063febf01c80785f54fd98c36a0a930a93d7a00628869540ce769a7da3f3974f370b0f6e91e9e122e0634586312cb04bbcb55f9850bff3afab67ab604ce792bfc3d05580281fc6ffe987ce000a5edbfffc28b8000118efffffc5e0000007bfffffff80000000n],
+ [0xffffffffn, 31n, 0xffffffe1000001d0ffffee7100007ae8fffd6849000b3c18ffd7e03900785f54fecc61b502a4c2a4faf400c50869540cf3b4d3ed0fce5d3cee161edd11e9e122f031a2c30c4b2c12f796abf3050bff3afd5b3d5b01339e4aff87a0ab00281fc6fff4c3e7000297b6ffff85170000118efffffe2f0000001effffffffn],
+ [0x100000000n, 31n, 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x100000001n, 31n, 0x10000001f000001d10000118f00007ae9000297b7000b3c1900281fc700785f5501339e4b02a4c2a5050bff3b0869540d0c4b2c130fce5d3d11e9e12311e9e1230fce5d3d0c4b2c130869540d050bff3b02a4c2a501339e4b00785f5500281fc7000b3c19000297b700007ae90000118f000001d10000001f00000001n],
+ [0x7ffffffffffffffen, 31n, 0x1ffffffffffffff080000000000003a1ffffffffffff738800000000000f5d1ffffffffffeb4248000000000167831fffffffffebf01c8000000000f0bea9fffffffff6630da8000000005498549ffffffffd7a00628000000010d2a819ffffffff9da69f6800000001f9cba79ffffffff70b0f6e8000000023d3c245ffffffff818d1618000000018965825ffffffffbcb55f9800000000a17fe75ffffffffead9ead8000000002673c95fffffffffc3d0558000000000503f8dffffffffffa61f38000000000052f6dfffffffffffc28b800000000000231dfffffffffffff17800000000000003dfffffffffffffff80000000n],
+ [0x7fffffffffffffffn, 31n, 0x1ffffffffffffff840000000000000e87fffffffffffee71000000000000f5d1fffffffffff5a124000000000059e0c7fffffffffd7e0390000000000f0bea9fffffffffb3186d40000000015261527ffffffffaf400c50000000010d2a819ffffffffced34fb4000000007e72e9e7fffffffee161edd0000000023d3c245ffffffffc0c68b0c0000000062596097ffffffff796abf3000000000a17fe75fffffffff56cf56c00000000099cf257fffffffff87a0ab0000000000503f8dffffffffffd30f9c000000000014bdb7fffffffffff8517000000000000231dfffffffffffff8bc00000000000000f7fffffffffffffffn],
+ [0x8000000000000000n, 31n, 0x200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x8000000000000001n, 31n, 0x2000000000000007c0000000000000e8800000000000118f000000000000f5d200000000000a5edc000000000059e0c8000000000281fc70000000000f0beaa0000000004ce792c00000000152615280000000050bff3b0000000010d2a81a00000000312cb04c000000007e72e9e8000000011e9e1230000000023d3c246000000003f3974f4000000006259609800000000869540d000000000a17fe76000000000a930a9400000000099cf258000000000785f550000000000503f8e00000000002cf064000000000014bdb8000000000007ae9000000000000231e000000000000074400000000000000f8000000000000001n],
+ [0xfffffffffffffffen, 31n, 0xffffffffffffffc20000000000000743ffffffffffff7388000000000007ae8fffffffffffad09200000000002cf063fffffffffebf01c8000000000785f54fffffffffd98c36a000000000a930a93ffffffffd7a0062800000000869540cffffffffe769a7da000000003f3974f3ffffffff70b0f6e8000000011e9e122ffffffffe063458600000000312cb04bffffffffbcb55f980000000050bff3afffffffffab67ab60000000004ce792bfffffffffc3d0558000000000281fc6ffffffffffe987ce00000000000a5edbfffffffffffc28b800000000000118efffffffffffffc5e000000000000007bfffffffffffffff80000000n],
+ [0xffffffffffffffffn, 31n, 0xffffffffffffffe100000000000001d0ffffffffffffee710000000000007ae8fffffffffffd684900000000000b3c18ffffffffffd7e0390000000000785f54fffffffffecc61b50000000002a4c2a4fffffffffaf400c5000000000869540cfffffffff3b4d3ed000000000fce5d3cffffffffee161edd0000000011e9e122fffffffff031a2c3000000000c4b2c12fffffffff796abf300000000050bff3afffffffffd5b3d5b0000000001339e4affffffffff87a0ab0000000000281fc6fffffffffff4c3e700000000000297b6ffffffffffff8517000000000000118efffffffffffffe2f000000000000001effffffffffffffffn],
+ [0x10000000000000000n, 31n, 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x10000000000000001n, 31n, 0x1000000000000001f00000000000001d1000000000000118f0000000000007ae900000000000297b700000000000b3c190000000000281fc70000000000785f550000000001339e4b0000000002a4c2a500000000050bff3b000000000869540d000000000c4b2c13000000000fce5d3d0000000011e9e1230000000011e9e123000000000fce5d3d000000000c4b2c13000000000869540d00000000050bff3b0000000002a4c2a50000000001339e4b0000000000785f550000000000281fc700000000000b3c1900000000000297b70000000000007ae9000000000000118f00000000000001d1000000000000001f0000000000000001n],
+ [-0x10000000000000001n, 32n, 0x1000000000000002000000000000001f000000000000013600000000000008c7800000000000312a000000000000dd3d00000000000335be00000000000a07f1c0000000001abfda00000000003d860f00000000007b0c1e0000000000d7553480000000014b48020000000001c1989500000000021b83e600000000023d3c2460000000021b83e60000000001c1989500000000014b48020000000000d7553480000000007b0c1e00000000003d860f00000000001abfda00000000000a07f1c0000000000335be000000000000dd3d000000000000312a00000000000008c78000000000000136000000000000001f000000000000000200000000000000001n],
+ [-0x10000000000000000n, 32n, 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 32n, 0xffffffffffffffe000000000000001efffffffffffffeca00000000000008c77fffffffffffced6000000000000dd3cfffffffffffcca4200000000000a07f1bfffffffffe5402600000000003d860effffffffff84f3e20000000000d755347ffffffffeb4b7fe0000000001c19894fffffffffde47c1a00000000023d3c245ffffffffde47c1a0000000001c19894fffffffffeb4b7fe0000000000d755347fffffffff84f3e200000000003d860effffffffffe5402600000000000a07f1bffffffffffcca42000000000000dd3cffffffffffffced600000000000008c77ffffffffffffeca000000000000001efffffffffffffffe00000000000000001n],
+ [-0xfffffffffffffffen, 32n, 0xffffffffffffffc000000000000007bfffffffffffff6500000000000008c77fffffffffff9dac00000000000374f3ffffffffffe652100000000000a07f1bfffffffffca804c0000000000f6183bfffffffffc279f10000000000d755347ffffffffd696ffc0000000007066253ffffffffef23e0d00000000023d3c245ffffffffbc8f8340000000007066253fffffffff5a5bff0000000000d755347fffffffff09e7c40000000000f6183bffffffffff2a01300000000000a07f1bffffffffff9948400000000000374f3fffffffffffe76b00000000000008c77ffffffffffffd94000000000000007bfffffffffffffff0000000000000000100000000n],
+ [-0x8000000000000001n, 32n, 0x1000000000000004000000000000007c00000000000009b00000000000008c7800000000000625400000000000374f4000000000019adf00000000000a07f1c000000000357fb40000000000f6183c0000000003d860f0000000000d75534800000000296900400000000070662540000000010dc1f300000000023d3c2460000000043707cc0000000007066254000000000a5a4010000000000d755348000000000f6183c0000000000f6183c0000000000d5fed00000000000a07f1c000000000066b7c00000000000374f400000000000189500000000000008c7800000000000026c000000000000007c00000000000000100000000000000001n],
+ [-0x8000000000000000n, 32n, 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 32n, 0xffffffffffffffc000000000000007bfffffffffffff6500000000000008c77fffffffffff9dac00000000000374f3ffffffffffe652100000000000a07f1bfffffffffca804c0000000000f6183bfffffffffc279f10000000000d755347ffffffffd696ffc0000000007066253ffffffffef23e0d00000000023d3c245ffffffffbc8f8340000000007066253fffffffff5a5bff0000000000d755347fffffffff09e7c40000000000f6183bffffffffff2a01300000000000a07f1bffffffffff9948400000000000374f3fffffffffffe76b00000000000008c77ffffffffffffd94000000000000007bfffffffffffffff00000000000000001n],
+ [-0x7ffffffffffffffen, 32n, 0xffffffffffffff800000000000001efffffffffffffb280000000000008c77fffffffffff3b5800000000000dd3cfffffffffff329080000000000a07f1bfffffffff9500980000000003d860efffffffffe13cf88000000000d755347ffffffffad2dff8000000001c19894fffffffff791f0680000000023d3c245ffffffff791f068000000001c19894fffffffffad2dff8000000000d755347ffffffffe13cf880000000003d860effffffffff9500980000000000a07f1bffffffffff3290800000000000dd3cffffffffffff3b580000000000008c77ffffffffffffb2800000000000001efffffffffffffff8000000000000000100000000n],
+ [-0x100000001n, 32n, 0x100000020000001f00000136000008c78000312a0000dd3d000335be000a07f1c01abfda003d860f007b0c1e00d75534814b480201c19895021b83e6023d3c24621b83e601c19895014b480200d75534807b0c1e003d860f001abfda000a07f1c00335be0000dd3d0000312a000008c7800001360000001f00000002000000001n],
+ [-0x100000000n, 32n, 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffn, 32n, 0xffffffe0000001efffffeca000008c77fffced60000dd3cfffcca42000a07f1bfe54026003d860eff84f3e200d755347eb4b7fe01c19894fde47c1a023d3c245de47c1a01c19894feb4b7fe00d755347f84f3e2003d860effe54026000a07f1bffcca420000dd3cffffced6000008c77ffffeca0000001efffffffe000000001n],
+ [-0xfffffffen, 32n, 0xffffffc0000007bfffff65000008c77fff9dac000374f3ffe6521000a07f1bfca804c00f6183bfc279f100d755347d696ffc07066253ef23e0d023d3c245bc8f83407066253f5a5bff00d755347f09e7c400f6183bff2a013000a07f1bff99484000374f3fffe76b000008c77ffffd940000007bfffffff00000000100000000n],
+ [-0x80000001n, 32n, 0x100000040000007c000009b000008c780006254000374f40019adf000a07f1c0357fb400f6183c03d860f00d75534829690040706625410dc1f3023d3c24643707cc070662540a5a40100d7553480f6183c00f6183c00d5fed000a07f1c0066b7c000374f40001895000008c78000026c0000007c0000001000000001n],
+ [-0x80000000n, 32n, 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffn, 32n, 0xffffffc0000007bfffff65000008c77fff9dac000374f3ffe6521000a07f1bfca804c00f6183bfc279f100d755347d696ffc07066253ef23e0d023d3c245bc8f83407066253f5a5bff00d755347f09e7c400f6183bff2a013000a07f1bff99484000374f3fffe76b000008c77ffffd940000007bfffffff000000001n],
+ [-0x7ffffffen, 32n, 0xffffff8000001efffffb2800008c77fff3b58000dd3cfff3290800a07f1bf95009803d860efe13cf880d755347ad2dff81c19894f791f06823d3c245791f0681c19894fad2dff80d755347e13cf8803d860eff95009800a07f1bff32908000dd3cffff3b5800008c77ffffb28000001efffffff80000000100000000n],
+ [-9n, 32n, 0x2b56d4af8f7932278c797ebd01n],
+ [-8n, 32n, 0x1000000000000000000000000n],
+ [-7n, 32n, 0x3918fa8303c33586e913b01n],
+ [-6n, 32n, 0x6954fe21e3e8100000000n],
+ [-5n, 32n, 0x4ee2d6d415b85acef81n],
+ [-4n, 32n, 0x10000000000000000n],
+ [-3n, 32n, 0x6954fe21e3e81n],
+ [-2n, 32n, 0x100000000n],
+ [-1n, 32n, 1n],
+ [0n, 32n, 0n],
+ [1n, 32n, 1n],
+ [2n, 32n, 0x100000000n],
+ [3n, 32n, 0x6954fe21e3e81n],
+ [4n, 32n, 0x10000000000000000n],
+ [5n, 32n, 0x4ee2d6d415b85acef81n],
+ [6n, 32n, 0x6954fe21e3e8100000000n],
+ [7n, 32n, 0x3918fa8303c33586e913b01n],
+ [8n, 32n, 0x1000000000000000000000000n],
+ [9n, 32n, 0x2b56d4af8f7932278c797ebd01n],
+ [0x7ffffffen, 32n, 0xffffff8000001efffffb2800008c77fff3b58000dd3cfff3290800a07f1bf95009803d860efe13cf880d755347ad2dff81c19894f791f06823d3c245791f0681c19894fad2dff80d755347e13cf8803d860eff95009800a07f1bff32908000dd3cffff3b5800008c77ffffb28000001efffffff80000000100000000n],
+ [0x7fffffffn, 32n, 0xffffffc0000007bfffff65000008c77fff9dac000374f3ffe6521000a07f1bfca804c00f6183bfc279f100d755347d696ffc07066253ef23e0d023d3c245bc8f83407066253f5a5bff00d755347f09e7c400f6183bff2a013000a07f1bff99484000374f3fffe76b000008c77ffffd940000007bfffffff000000001n],
+ [0x80000000n, 32n, 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x80000001n, 32n, 0x100000040000007c000009b000008c780006254000374f40019adf000a07f1c0357fb400f6183c03d860f00d75534829690040706625410dc1f3023d3c24643707cc070662540a5a40100d7553480f6183c00f6183c00d5fed000a07f1c0066b7c000374f40001895000008c78000026c0000007c0000001000000001n],
+ [0xfffffffen, 32n, 0xffffffc0000007bfffff65000008c77fff9dac000374f3ffe6521000a07f1bfca804c00f6183bfc279f100d755347d696ffc07066253ef23e0d023d3c245bc8f83407066253f5a5bff00d755347f09e7c400f6183bff2a013000a07f1bff99484000374f3fffe76b000008c77ffffd940000007bfffffff00000000100000000n],
+ [0xffffffffn, 32n, 0xffffffe0000001efffffeca000008c77fffced60000dd3cfffcca42000a07f1bfe54026003d860eff84f3e200d755347eb4b7fe01c19894fde47c1a023d3c245de47c1a01c19894feb4b7fe00d755347f84f3e2003d860effe54026000a07f1bffcca420000dd3cffffced6000008c77ffffeca0000001efffffffe000000001n],
+ [0x100000000n, 32n, 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x100000001n, 32n, 0x100000020000001f00000136000008c78000312a0000dd3d000335be000a07f1c01abfda003d860f007b0c1e00d75534814b480201c19895021b83e6023d3c24621b83e601c19895014b480200d75534807b0c1e003d860f001abfda000a07f1c00335be0000dd3d0000312a000008c7800001360000001f00000002000000001n],
+ [0x7ffffffffffffffen, 32n, 0xffffffffffffff800000000000001efffffffffffffb280000000000008c77fffffffffff3b5800000000000dd3cfffffffffff329080000000000a07f1bfffffffff9500980000000003d860efffffffffe13cf88000000000d755347ffffffffad2dff8000000001c19894fffffffff791f0680000000023d3c245ffffffff791f068000000001c19894fffffffffad2dff8000000000d755347ffffffffe13cf880000000003d860effffffffff9500980000000000a07f1bffffffffff3290800000000000dd3cffffffffffff3b580000000000008c77ffffffffffffb2800000000000001efffffffffffffff8000000000000000100000000n],
+ [0x7fffffffffffffffn, 32n, 0xffffffffffffffc000000000000007bfffffffffffff6500000000000008c77fffffffffff9dac00000000000374f3ffffffffffe652100000000000a07f1bfffffffffca804c0000000000f6183bfffffffffc279f10000000000d755347ffffffffd696ffc0000000007066253ffffffffef23e0d00000000023d3c245ffffffffbc8f8340000000007066253fffffffff5a5bff0000000000d755347fffffffff09e7c40000000000f6183bffffffffff2a01300000000000a07f1bffffffffff9948400000000000374f3fffffffffffe76b00000000000008c77ffffffffffffd94000000000000007bfffffffffffffff00000000000000001n],
+ [0x8000000000000000n, 32n, 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x8000000000000001n, 32n, 0x1000000000000004000000000000007c00000000000009b00000000000008c7800000000000625400000000000374f4000000000019adf00000000000a07f1c000000000357fb40000000000f6183c0000000003d860f0000000000d75534800000000296900400000000070662540000000010dc1f300000000023d3c2460000000043707cc0000000007066254000000000a5a4010000000000d755348000000000f6183c0000000000f6183c0000000000d5fed00000000000a07f1c000000000066b7c00000000000374f400000000000189500000000000008c7800000000000026c000000000000007c00000000000000100000000000000001n],
+ [0xfffffffffffffffen, 32n, 0xffffffffffffffc000000000000007bfffffffffffff6500000000000008c77fffffffffff9dac00000000000374f3ffffffffffe652100000000000a07f1bfffffffffca804c0000000000f6183bfffffffffc279f10000000000d755347ffffffffd696ffc0000000007066253ffffffffef23e0d00000000023d3c245ffffffffbc8f8340000000007066253fffffffff5a5bff0000000000d755347fffffffff09e7c40000000000f6183bffffffffff2a01300000000000a07f1bffffffffff9948400000000000374f3fffffffffffe76b00000000000008c77ffffffffffffd94000000000000007bfffffffffffffff0000000000000000100000000n],
+ [0xffffffffffffffffn, 32n, 0xffffffffffffffe000000000000001efffffffffffffeca00000000000008c77fffffffffffced6000000000000dd3cfffffffffffcca4200000000000a07f1bfffffffffe5402600000000003d860effffffffff84f3e20000000000d755347ffffffffeb4b7fe0000000001c19894fffffffffde47c1a00000000023d3c245ffffffffde47c1a0000000001c19894fffffffffeb4b7fe0000000000d755347fffffffff84f3e200000000003d860effffffffffe5402600000000000a07f1bffffffffffcca42000000000000dd3cffffffffffffced600000000000008c77ffffffffffffeca000000000000001efffffffffffffffe00000000000000001n],
+ [0x10000000000000000n, 32n, 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x10000000000000001n, 32n, 0x1000000000000002000000000000001f000000000000013600000000000008c7800000000000312a000000000000dd3d00000000000335be00000000000a07f1c0000000001abfda00000000003d860f00000000007b0c1e0000000000d7553480000000014b48020000000001c1989500000000021b83e600000000023d3c2460000000021b83e60000000001c1989500000000014b48020000000000d7553480000000007b0c1e00000000003d860f00000000001abfda00000000000a07f1c0000000000335be000000000000dd3d000000000000312a00000000000008c78000000000000136000000000000001f000000000000000200000000000000001n],
+ [-0x10000000000000001n, 63n, -0x1000000000000003f00000000000007a10000000000009b1f00000000000916d100000000006b406f00000000040cc4310000000020fa3d8f00000000e6d7aee90000000582b449570000001dc1cd8c090000008f5ff5a2b70000026d4a7dc119000009855f4fce2700002200e6af4df900006f1402a30fc700014d3c07e92f550003994b9d6691eb0009326be79458750015c842ee953d4b002febc6734853a500621fbaec0e009b00bb53d937037585014dee83358bbb3b022c8d85593e380d036438eebe6b4d3304f4f0bf6512faad06caeb193ea83b1308bbc08e2bfcde3d0a8a52534f924a030bf2190915ea0f9d0cb764f927d821230cb764f927d821230bf2190915ea0f9d0a8a52534f924a0308bbc08e2bfcde3d06caeb193ea83b1304f4f0bf6512faad036438eebe6b4d33022c8d85593e380d014dee83358bbb3b00bb53d93703758500621fbaec0e009b002febc6734853a50015c842ee953d4b0009326be79458750003994b9d6691eb00014d3c07e92f5500006f1402a30fc700002200e6af4df9000009855f4fce270000026d4a7dc1190000008f5ff5a2b70000001dc1cd8c090000000582b4495700000000e6d7aee90000000020fa3d8f00000000040cc43100000000006b406f00000000000916d10000000000009b1f00000000000007a1000000000000003f0000000000000001n],
+ [-0x10000000000000000n, 63n, -0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 63n, -0xffffffffffffffc100000000000007a0ffffffffffff64e100000000000916d0ffffffffff94bf9100000000040cc430ffffffffdf05c27100000000e6d7aee8fffffffa7d4bb6a90000001dc1cd8c08ffffff70a00a5d490000026d4a7dc118fffff67aa0b031d900002200e6af4df8ffff90ebfd5cf03900014d3c07e92f54fffc66b462996e150009326be7945874ffea37bd116ac2b5002febc6734853a4ff9de04513f1ff6500bb53d937037584feb2117cca7444c5022c8d85593e380cfc9bc7114194b2cd04f4f0bf6512faacf93514e6c157c4ed08bbc08e2bfcde3cf575adacb06db5fd0bf2190915ea0f9cf3489b06d827dedd0cb764f927d82122f40de6f6ea15f0630a8a52534f924a02f7443f71d40321c306caeb193ea83b12fb0b0f409aed0553036438eebe6b4d32fdd3727aa6c1c7f3014dee83358bbb3aff44ac26c8fc8a7b00621fbaec0e009affd014398cb7ac5b0015c842ee953d4afff6cd94186ba78b0003994b9d6691eafffeb2c3f816d0ab00006f1402a30fc6ffffddff1950b207000009855f4fce26fffffd92b5823ee70000008f5ff5a2b6ffffffe23e3273f70000000582b44956ffffffff192851170000000020fa3d8efffffffffbf33bcf00000000006b406efffffffffff6e92f0000000000009b1efffffffffffff85f000000000000003effffffffffffffffn],
+ [-0xfffffffffffffffen, 63n, -0xffffffffffffff820000000000001e83fffffffffffb27080000000000916d0ffffffffff297f2200000000103310c3fffffffef82e13880000000e6d7aee8fffffff4fa976d520000007707363023fffffb850052ea48000026d4a7dc118ffffecf5416063b2000088039abd37e3fffc875feae781c80014d3c07e92f54fff8cd68c532dc2a0024c9af9e5161d3ff51bde88b5615a802febc6734853a4ff3bc08a27e3feca02ed4f64dc0dd613f5908be653a2262822c8d85593e380cf9378e228329659a13d3c2fd944beab3c9a8a7360abe27688bbc08e2bfcde3ceaeb5b5960db6bfa2fc8642457a83e739a44d836c13ef6e8cb764f927d82122e81bcdedd42be0c62a29494d3e49280bba21fb8ea0190e186caeb193ea83b12f6161e8135da0aa60d90e3baf9ad34cbee9b93d5360e3f9814dee83358bbb3afe89584d91f914f601887eebb038026bfe80a1cc65bd62d8015c842ee953d4affed9b2830d74f16000e652e759a47abfff5961fc0b685580006f1402a30fc6ffffbbfe32a1640e000026157d3f389bffffec95ac11f738000008f5ff5a2b6ffffffc47c64e7ee000000160ad1255bfffffff8c94288b8000000020fa3d8efffffffff7e6779e0000000001ad01bbffffffffffb74978000000000009b1efffffffffffff0be00000000000000fbfffffffffffffff8000000000000000n],
+ [-0x8000000000000001n, 63n, -0x200000000000000fc0000000000003d08000000000009b1f0000000000122da20000000001ad01bc0000000020662188000000020fa3d8f00000001cdaf5dd2000000160ad1255c000000ee0e6c6048000008f5ff5a2b7000004da94fb8232000026157d3f389c00011007357a6fc80006f1402a30fc700029a780fd25eaa000e652e759a47ac0049935f3ca2c3a8015c842ee953d4b005fd78ce690a74a01887eebb038026c05da9ec9b81bac2814dee83358bbb3b04591b0ab27c701a0d90e3baf9ad34cc27a785fb2897d5686caeb193ea83b131177811c57f9bc7a2a29494d3e49280c5f90c848af507ce8cb764f927d82123196ec9f24fb042462fc8642457a83e745452929a7c9250188bbc08e2bfcde3d0d95d6327d50762613d3c2fd944beab41b21c775f35a699822c8d85593e380d029bdd066b17767602ed4f64dc0dd6140310fdd7607004d802febc6734853a5002b9085dd2a7a960024c9af9e5161d4001cca5ceb348f580014d3c07e92f550000de2805461f8e000088039abd37e400004c2afa7e7138000026d4a7dc1190000011ebfeb456e00000077073630240000002c15a24ab80000000e6d7aee90000000041f47b1e00000000103310c400000000035a03780000000000916d1000000000001363e0000000000001e8400000000000001f8000000000000001n],
+ [-0x8000000000000000n, 63n, -0x200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 63n, -0x1ffffffffffffff040000000000003d07fffffffffff64e10000000000122da1fffffffffe52fe440000000020662187fffffffdf05c27100000001cdaf5dd1ffffffe9f52edaa4000000ee0e6c6047fffff70a00a5d49000004da94fb8231ffffd9ea82c0c76400011007357a6fc7fff90ebfd5cf03900029a780fd25ea9fff19ad18a65b8540049935f3ca2c3a7fea37bd116ac2b5005fd78ce690a749fe7781144fc7fd9405da9ec9b81bac27eb2117cca7444c504591b0ab27c7019f26f1c450652cb3427a785fb2897d56793514e6c157c4ed1177811c57f9bc79d5d6b6b2c1b6d7f45f90c848af507ce73489b06d827dedd196ec9f24fb04245d0379bdba857c18c5452929a7c9250177443f71d40321c30d95d6327d507625ec2c3d026bb4154c1b21c775f35a6997dd3727aa6c1c7f3029bdd066b177675fd12b09b23f229ec0310fdd7607004d7fd014398cb7ac5b002b9085dd2a7a95ffdb365061ae9e2c001cca5ceb348f57ffeb2c3f816d0ab0000de2805461f8dffff77fc6542c81c00004c2afa7e7137ffffd92b5823ee70000011ebfeb456dffffff88f8c9cfdc0000002c15a24ab7fffffff192851170000000041f47b1dffffffffefccef3c00000000035a0377ffffffffff6e92f000000000001363dffffffffffffe17c00000000000001f7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 63n, -0x1fffffffffffffe08000000000000f41fffffffffffb2708000000000122da1fffffffffca5fc88000000008198861fffffffef82e13880000001cdaf5dd1ffffffd3ea5db548000003b839b1811fffffb850052ea4800004da94fb8231ffffb3d505818ec80004401cd5e9bf1fffc875feae781c80029a780fd25ea9ffe335a314cb70a801264d7cf28b0e9ff51bde88b5615a805fd78ce690a749fcef02289f8ffb28176a7b26e06eb09f5908be653a226284591b0ab27c7019e4de388a0ca596689e9e17eca25f559c9a8a7360abe2769177811c57f9bc79abad6d65836dafe97e432122bd41f399a44d836c13ef6e996ec9f24fb04245a06f37b750af8319514a4a69f249405ba21fb8ea0190e18d95d6327d507625d8587a04d7682a986c871dd7cd69a65ee9b93d5360e3f9829bdd066b177675fa25613647e453d80c43f75d81c0135fe80a1cc65bd62d802b9085dd2a7a95ffb66ca0c35d3c5800732973acd23d5fff5961fc0b68558000de2805461f8dfffeeff8ca859038000130abe9f9c4dffffec95ac11f738000011ebfeb456dffffff11f1939fb8000000b056892adfffffff8c94288b8000000041f47b1dffffffffdf99de78000000000d680ddffffffffffb7497800000000001363dffffffffffffc2f800000000000007dfffffffffffffff8000000000000000n],
+ [-0x100000001n, 63n, -0x10000003f000007a100009b1f000916d1006b406f040cc43120fa3d8fe6d7aeee82b44974c1cd8c985ff5a5244a7dca9e5f4ff027e6afbd0d02a45d0307ecc8a09d6fc456e7aa20b7eec5291173aa735fecc954743851640837b848c05ca270fbc3603df26bdde5c64763fba1368730905b84630c22a17496348f861c33ca3a2c207461f0584e0a9132c7c956439d2bd26877339bc097dab85a8c269036470f143765953fec3dec61735e1be7ee9e6fb6e797f1c09d67df2707e99e6902a331c7e6af577e5f4fd0944a7dc1a85ff5a2d4c1cd8c0e82b44957e6d7aee920fa3d8f040cc431006b406f000916d100009b1f000007a10000003f00000001n],
+ [-0x100000000n, 63n, -0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffn, 63n, -0xffffffc1000007a0ffff64e1000916d0ff94bf91040cc430df05c271e6d7aee37d4bb6c6c1cd8b79a00a5fb64a7db793a0b053d9e6aedee4fd5e3d7507e5960962a2a080e77e9032119aae7b72e633ea14ad533e35b58701cca0d24a55d9ff1e4689a38c5e480f93ca13857b21728be9bc5fcf060932aaa3e4df43d61be60819f4a042b646d68974dace0cdc39b34a539e513e41bc3ebfada80fb67634d06761c95eaa35ebde14d48ccd749dee8c0adf186f40d69d6544aef8173fbf02a2edc61950bb8c5f4fcbb9b5823f765ff5a2993e3273fc82b449561928511720fa3d8efbf33bcf006b406efff6e92f00009b1efffff85f0000003effffffffn],
+ [-0xfffffffen, 63n, -0xffffff8200001e83fffb270800916d0ff297f22103310c2f82e13966d7aeddfa976dc907362ba90053111ca7dae0e4160ebb59ab9bf43eafc55887e1fcbdc557a5d99da31fbc8e54d20f284142f2ad14e2ed19e61fa766afe7d275c62f96fd28975df491ea967a30496e8399690a3d01df1ed16ab8cb54678ff3ef10fe552a12f86b239b0cc7bfab4be5994436aee60e848c8a14aed27cb4151388938193e1aeb8a4386719e706e82d87330e5b444758fddcbc0bd76982a2cbc532a18a237d3f2531ac12002dff5a27b7c64e8040ad12554c94288ba0fa3d8ef7e6779e01ad01bbffb749780009b1efffff0be000000fbfffffff8000000000000000n],
+ [-0x80000001n, 63n, -0x2000000fc00003d080009b1f00122da201ad01bc2066218a0fa3d90cdaf5de80ad1264a0e6c693dff5a79194fba8477d4048a3358161082a5aa3f0fe0c3d875e3db0b3dff47d6ef514d7e8192635b612a135ccfa945b9e4d645c00d53d52154bac7954686fd01fbc2f822305c79dd9f0557ac6cc7c146eb157f78a66aabfad10f084e58fb992b46f91243923af6db22a162341edbda15136e04c5dadf1ed3eb636ec13f373e42add4f44459e6e2c30eb4963187ea0d7d0546a7919abd840efa7e980ca7dc237bfeb45e50736305015a24ac66d7aee941f47b1e103310c4035a037800916d10001363e00001e84000001f80000001n],
+ [-0x80000000n, 63n, -0x200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffn, 63n, -0x1ffffff0400003d07fff64e100122da1fe52fe4420662185f05c272cdaf5dbbf52edb920e6c575200a622394fb5c1c82c1d76b35737e87d5f8ab10fc3f97b8aaf4bb33b463f791ca9a41e508285e55a29c5da33cc3f4ecd5fcfa4eb8c5f2dfa512ebbe923d52cf46092dd0732d2147a03be3da2d57196a8cf1fe7de21fcaa5425f0d64736198f7f5697cb32886d5dcc1d091914295da4f9682a2711270327c35d714870ce33ce0dd05b0e661cb6888eb1fbb97817aed30545978a65431446fa7e4a635824005bfeb44f6f8c9d00815a24aa9928511741f47b1defccef3c035a0377ff6e92f0001363dffffe17c000001f7fffffffn],
+ [-0x7ffffffen, 63n, -0x1fffffe080000f41fffb27080122da1fca5fc888198860f82e13a4daf5da5ea5db90039b1397005337f14fb36070585cee4d5b2351eb112948fb5944d15f1be24e7a6ed291538e7637fa972b6fa764e39776f09933d6d175aa8a4ab43ae513ce9c91223639283a729e101b0d104618f772582b960701f79fea1f9cd7d9468f957976713d5a8f02b43ef486eb722e3b5fcc0ffe53cd7ac54284b3569ca30268766b35ce0e736c3d065cbac2b9f5c0c467d85450f86ca86c0e3e9f88e3ac120923feb447ff193a06856892a6c94288bc1f47b1ddf99de780d680ddffb74978001363dffffc2f8000007dfffffff8000000000000000n],
+ [-9n, 63n, -0xd0b2c448fbd1250537195f2c63386319440e403b2ad680b839n],
+ [-8n, 63n, -0x200000000000000000000000000000000000000000000000n],
+ [-7n, 63n, -0x1d1bbb69c328a67bf5a6a36fb99bb2839ba41401ac7b7n],
+ [-6n, 63n, -0x739237297e9885becbeea74d58000000000000000n],
+ [-5n, 63n, -0x4dc9a61d998642bbb1e62afa4fc47597b9fcdn],
+ [-4n, 63n, -0x40000000000000000000000000000000n],
+ [-3n, 63n, -0xe7246e52fd310b7d97dd4e9abn],
+ [-2n, 63n, -0x8000000000000000n],
+ [-1n, 63n, -1n],
+ [0n, 63n, 0n],
+ [1n, 63n, 1n],
+ [2n, 63n, 0x8000000000000000n],
+ [3n, 63n, 0xe7246e52fd310b7d97dd4e9abn],
+ [4n, 63n, 0x40000000000000000000000000000000n],
+ [5n, 63n, 0x4dc9a61d998642bbb1e62afa4fc47597b9fcdn],
+ [6n, 63n, 0x739237297e9885becbeea74d58000000000000000n],
+ [7n, 63n, 0x1d1bbb69c328a67bf5a6a36fb99bb2839ba41401ac7b7n],
+ [8n, 63n, 0x200000000000000000000000000000000000000000000000n],
+ [9n, 63n, 0xd0b2c448fbd1250537195f2c63386319440e403b2ad680b839n],
+ [0x7ffffffen, 63n, 0x1fffffe080000f41fffb27080122da1fca5fc888198860f82e13a4daf5da5ea5db90039b1397005337f14fb36070585cee4d5b2351eb112948fb5944d15f1be24e7a6ed291538e7637fa972b6fa764e39776f09933d6d175aa8a4ab43ae513ce9c91223639283a729e101b0d104618f772582b960701f79fea1f9cd7d9468f957976713d5a8f02b43ef486eb722e3b5fcc0ffe53cd7ac54284b3569ca30268766b35ce0e736c3d065cbac2b9f5c0c467d85450f86ca86c0e3e9f88e3ac120923feb447ff193a06856892a6c94288bc1f47b1ddf99de780d680ddffb74978001363dffffc2f8000007dfffffff8000000000000000n],
+ [0x7fffffffn, 63n, 0x1ffffff0400003d07fff64e100122da1fe52fe4420662185f05c272cdaf5dbbf52edb920e6c575200a622394fb5c1c82c1d76b35737e87d5f8ab10fc3f97b8aaf4bb33b463f791ca9a41e508285e55a29c5da33cc3f4ecd5fcfa4eb8c5f2dfa512ebbe923d52cf46092dd0732d2147a03be3da2d57196a8cf1fe7de21fcaa5425f0d64736198f7f5697cb32886d5dcc1d091914295da4f9682a2711270327c35d714870ce33ce0dd05b0e661cb6888eb1fbb97817aed30545978a65431446fa7e4a635824005bfeb44f6f8c9d00815a24aa9928511741f47b1defccef3c035a0377ff6e92f0001363dffffe17c000001f7fffffffn],
+ [0x80000000n, 63n, 0x200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x80000001n, 63n, 0x2000000fc00003d080009b1f00122da201ad01bc2066218a0fa3d90cdaf5de80ad1264a0e6c693dff5a79194fba8477d4048a3358161082a5aa3f0fe0c3d875e3db0b3dff47d6ef514d7e8192635b612a135ccfa945b9e4d645c00d53d52154bac7954686fd01fbc2f822305c79dd9f0557ac6cc7c146eb157f78a66aabfad10f084e58fb992b46f91243923af6db22a162341edbda15136e04c5dadf1ed3eb636ec13f373e42add4f44459e6e2c30eb4963187ea0d7d0546a7919abd840efa7e980ca7dc237bfeb45e50736305015a24ac66d7aee941f47b1e103310c4035a037800916d10001363e00001e84000001f80000001n],
+ [0xfffffffen, 63n, 0xffffff8200001e83fffb270800916d0ff297f22103310c2f82e13966d7aeddfa976dc907362ba90053111ca7dae0e4160ebb59ab9bf43eafc55887e1fcbdc557a5d99da31fbc8e54d20f284142f2ad14e2ed19e61fa766afe7d275c62f96fd28975df491ea967a30496e8399690a3d01df1ed16ab8cb54678ff3ef10fe552a12f86b239b0cc7bfab4be5994436aee60e848c8a14aed27cb4151388938193e1aeb8a4386719e706e82d87330e5b444758fddcbc0bd76982a2cbc532a18a237d3f2531ac12002dff5a27b7c64e8040ad12554c94288ba0fa3d8ef7e6779e01ad01bbffb749780009b1efffff0be000000fbfffffff8000000000000000n],
+ [0xffffffffn, 63n, 0xffffffc1000007a0ffff64e1000916d0ff94bf91040cc430df05c271e6d7aee37d4bb6c6c1cd8b79a00a5fb64a7db793a0b053d9e6aedee4fd5e3d7507e5960962a2a080e77e9032119aae7b72e633ea14ad533e35b58701cca0d24a55d9ff1e4689a38c5e480f93ca13857b21728be9bc5fcf060932aaa3e4df43d61be60819f4a042b646d68974dace0cdc39b34a539e513e41bc3ebfada80fb67634d06761c95eaa35ebde14d48ccd749dee8c0adf186f40d69d6544aef8173fbf02a2edc61950bb8c5f4fcbb9b5823f765ff5a2993e3273fc82b449561928511720fa3d8efbf33bcf006b406efff6e92f00009b1efffff85f0000003effffffffn],
+ [0x100000000n, 63n, 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x100000001n, 63n, 0x10000003f000007a100009b1f000916d1006b406f040cc43120fa3d8fe6d7aeee82b44974c1cd8c985ff5a5244a7dca9e5f4ff027e6afbd0d02a45d0307ecc8a09d6fc456e7aa20b7eec5291173aa735fecc954743851640837b848c05ca270fbc3603df26bdde5c64763fba1368730905b84630c22a17496348f861c33ca3a2c207461f0584e0a9132c7c956439d2bd26877339bc097dab85a8c269036470f143765953fec3dec61735e1be7ee9e6fb6e797f1c09d67df2707e99e6902a331c7e6af577e5f4fd0944a7dc1a85ff5a2d4c1cd8c0e82b44957e6d7aee920fa3d8f040cc431006b406f000916d100009b1f000007a10000003f00000001n],
+ [0x7ffffffffffffffen, 63n, 0x1fffffffffffffe08000000000000f41fffffffffffb2708000000000122da1fffffffffca5fc88000000008198861fffffffef82e13880000001cdaf5dd1ffffffd3ea5db548000003b839b1811fffffb850052ea4800004da94fb8231ffffb3d505818ec80004401cd5e9bf1fffc875feae781c80029a780fd25ea9ffe335a314cb70a801264d7cf28b0e9ff51bde88b5615a805fd78ce690a749fcef02289f8ffb28176a7b26e06eb09f5908be653a226284591b0ab27c7019e4de388a0ca596689e9e17eca25f559c9a8a7360abe2769177811c57f9bc79abad6d65836dafe97e432122bd41f399a44d836c13ef6e996ec9f24fb04245a06f37b750af8319514a4a69f249405ba21fb8ea0190e18d95d6327d507625d8587a04d7682a986c871dd7cd69a65ee9b93d5360e3f9829bdd066b177675fa25613647e453d80c43f75d81c0135fe80a1cc65bd62d802b9085dd2a7a95ffb66ca0c35d3c5800732973acd23d5fff5961fc0b68558000de2805461f8dfffeeff8ca859038000130abe9f9c4dffffec95ac11f738000011ebfeb456dffffff11f1939fb8000000b056892adfffffff8c94288b8000000041f47b1dffffffffdf99de78000000000d680ddffffffffffb7497800000000001363dffffffffffffc2f800000000000007dfffffffffffffff8000000000000000n],
+ [0x7fffffffffffffffn, 63n, 0x1ffffffffffffff040000000000003d07fffffffffff64e10000000000122da1fffffffffe52fe440000000020662187fffffffdf05c27100000001cdaf5dd1ffffffe9f52edaa4000000ee0e6c6047fffff70a00a5d49000004da94fb8231ffffd9ea82c0c76400011007357a6fc7fff90ebfd5cf03900029a780fd25ea9fff19ad18a65b8540049935f3ca2c3a7fea37bd116ac2b5005fd78ce690a749fe7781144fc7fd9405da9ec9b81bac27eb2117cca7444c504591b0ab27c7019f26f1c450652cb3427a785fb2897d56793514e6c157c4ed1177811c57f9bc79d5d6b6b2c1b6d7f45f90c848af507ce73489b06d827dedd196ec9f24fb04245d0379bdba857c18c5452929a7c9250177443f71d40321c30d95d6327d507625ec2c3d026bb4154c1b21c775f35a6997dd3727aa6c1c7f3029bdd066b177675fd12b09b23f229ec0310fdd7607004d7fd014398cb7ac5b002b9085dd2a7a95ffdb365061ae9e2c001cca5ceb348f57ffeb2c3f816d0ab0000de2805461f8dffff77fc6542c81c00004c2afa7e7137ffffd92b5823ee70000011ebfeb456dffffff88f8c9cfdc0000002c15a24ab7fffffff192851170000000041f47b1dffffffffefccef3c00000000035a0377ffffffffff6e92f000000000001363dffffffffffffe17c00000000000001f7fffffffffffffffn],
+ [0x8000000000000000n, 63n, 0x200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x8000000000000001n, 63n, 0x200000000000000fc0000000000003d08000000000009b1f0000000000122da20000000001ad01bc0000000020662188000000020fa3d8f00000001cdaf5dd2000000160ad1255c000000ee0e6c6048000008f5ff5a2b7000004da94fb8232000026157d3f389c00011007357a6fc80006f1402a30fc700029a780fd25eaa000e652e759a47ac0049935f3ca2c3a8015c842ee953d4b005fd78ce690a74a01887eebb038026c05da9ec9b81bac2814dee83358bbb3b04591b0ab27c701a0d90e3baf9ad34cc27a785fb2897d5686caeb193ea83b131177811c57f9bc7a2a29494d3e49280c5f90c848af507ce8cb764f927d82123196ec9f24fb042462fc8642457a83e745452929a7c9250188bbc08e2bfcde3d0d95d6327d50762613d3c2fd944beab41b21c775f35a699822c8d85593e380d029bdd066b17767602ed4f64dc0dd6140310fdd7607004d802febc6734853a5002b9085dd2a7a960024c9af9e5161d4001cca5ceb348f580014d3c07e92f550000de2805461f8e000088039abd37e400004c2afa7e7138000026d4a7dc1190000011ebfeb456e00000077073630240000002c15a24ab80000000e6d7aee90000000041f47b1e00000000103310c400000000035a03780000000000916d1000000000001363e0000000000001e8400000000000001f8000000000000001n],
+ [0xfffffffffffffffen, 63n, 0xffffffffffffff820000000000001e83fffffffffffb27080000000000916d0ffffffffff297f2200000000103310c3fffffffef82e13880000000e6d7aee8fffffff4fa976d520000007707363023fffffb850052ea48000026d4a7dc118ffffecf5416063b2000088039abd37e3fffc875feae781c80014d3c07e92f54fff8cd68c532dc2a0024c9af9e5161d3ff51bde88b5615a802febc6734853a4ff3bc08a27e3feca02ed4f64dc0dd613f5908be653a2262822c8d85593e380cf9378e228329659a13d3c2fd944beab3c9a8a7360abe27688bbc08e2bfcde3ceaeb5b5960db6bfa2fc8642457a83e739a44d836c13ef6e8cb764f927d82122e81bcdedd42be0c62a29494d3e49280bba21fb8ea0190e186caeb193ea83b12f6161e8135da0aa60d90e3baf9ad34cbee9b93d5360e3f9814dee83358bbb3afe89584d91f914f601887eebb038026bfe80a1cc65bd62d8015c842ee953d4affed9b2830d74f16000e652e759a47abfff5961fc0b685580006f1402a30fc6ffffbbfe32a1640e000026157d3f389bffffec95ac11f738000008f5ff5a2b6ffffffc47c64e7ee000000160ad1255bfffffff8c94288b8000000020fa3d8efffffffff7e6779e0000000001ad01bbffffffffffb74978000000000009b1efffffffffffff0be00000000000000fbfffffffffffffff8000000000000000n],
+ [0xffffffffffffffffn, 63n, 0xffffffffffffffc100000000000007a0ffffffffffff64e100000000000916d0ffffffffff94bf9100000000040cc430ffffffffdf05c27100000000e6d7aee8fffffffa7d4bb6a90000001dc1cd8c08ffffff70a00a5d490000026d4a7dc118fffff67aa0b031d900002200e6af4df8ffff90ebfd5cf03900014d3c07e92f54fffc66b462996e150009326be7945874ffea37bd116ac2b5002febc6734853a4ff9de04513f1ff6500bb53d937037584feb2117cca7444c5022c8d85593e380cfc9bc7114194b2cd04f4f0bf6512faacf93514e6c157c4ed08bbc08e2bfcde3cf575adacb06db5fd0bf2190915ea0f9cf3489b06d827dedd0cb764f927d82122f40de6f6ea15f0630a8a52534f924a02f7443f71d40321c306caeb193ea83b12fb0b0f409aed0553036438eebe6b4d32fdd3727aa6c1c7f3014dee83358bbb3aff44ac26c8fc8a7b00621fbaec0e009affd014398cb7ac5b0015c842ee953d4afff6cd94186ba78b0003994b9d6691eafffeb2c3f816d0ab00006f1402a30fc6ffffddff1950b207000009855f4fce26fffffd92b5823ee70000008f5ff5a2b6ffffffe23e3273f70000000582b44956ffffffff192851170000000020fa3d8efffffffffbf33bcf00000000006b406efffffffffff6e92f0000000000009b1efffffffffffff85f000000000000003effffffffffffffffn],
+ [0x10000000000000000n, 63n, 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x10000000000000001n, 63n, 0x1000000000000003f00000000000007a10000000000009b1f00000000000916d100000000006b406f00000000040cc4310000000020fa3d8f00000000e6d7aee90000000582b449570000001dc1cd8c090000008f5ff5a2b70000026d4a7dc119000009855f4fce2700002200e6af4df900006f1402a30fc700014d3c07e92f550003994b9d6691eb0009326be79458750015c842ee953d4b002febc6734853a500621fbaec0e009b00bb53d937037585014dee83358bbb3b022c8d85593e380d036438eebe6b4d3304f4f0bf6512faad06caeb193ea83b1308bbc08e2bfcde3d0a8a52534f924a030bf2190915ea0f9d0cb764f927d821230cb764f927d821230bf2190915ea0f9d0a8a52534f924a0308bbc08e2bfcde3d06caeb193ea83b1304f4f0bf6512faad036438eebe6b4d33022c8d85593e380d014dee83358bbb3b00bb53d93703758500621fbaec0e009b002febc6734853a50015c842ee953d4b0009326be79458750003994b9d6691eb00014d3c07e92f5500006f1402a30fc700002200e6af4df9000009855f4fce270000026d4a7dc1190000008f5ff5a2b70000001dc1cd8c090000000582b4495700000000e6d7aee90000000020fa3d8f00000000040cc43100000000006b406f00000000000916d10000000000009b1f00000000000007a1000000000000003f0000000000000001n],
+ [-0x10000000000000001n, 64n, 0x1000000000000004000000000000007e0000000000000a2c0000000000009b1f0000000000074574000000000047804a000000000250701c00000000107d1ec7800000006698bf840000000234481d560000000ad21c32ec0000002fcaa7363d000000bf2a9cd8f4000002b8645ff1c2000009114e9525dc00001bc500a8c3f1c0004e687a54fc140000ccbb784faea60001efaaed62995c00045b40961dd90f000920b815f565440011d7394231176200209425c6c8f30c0037a7c088ec9f3480590c67417a98540085929ae237e47e00bbfdbd8a3bb35c00f86aba76aa51950134612e17b8f2840167c6b5c657c59a018a97e023dc230c0196ec9f24fb0424618a97e023dc230c0167c6b5c657c59a0134612e17b8f28400f86aba76aa519500bbfdbd8a3bb35c0085929ae237e47e00590c67417a98540037a7c088ec9f3480209425c6c8f30c0011d73942311762000920b815f5654400045b40961dd90f0001efaaed62995c0000ccbb784faea600004e687a54fc1400001bc500a8c3f1c00009114e9525dc000002b8645ff1c2000000bf2a9cd8f40000002fcaa7363d0000000ad21c32ec0000000234481d56000000006698bf8400000000107d1ec7800000000250701c000000000047804a00000000000745740000000000009b1f0000000000000a2c000000000000007e000000000000000400000000000000001n],
+ [-0x10000000000000000n, 64n, 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffffffffffn, 64n, 0xffffffffffffffc000000000000007dfffffffffffff5d40000000000009b1efffffffffff8ba8c0000000000478049fffffffffdaf8fe400000000107d1ec77fffffff9967407c0000000234481d55fffffff52de3cd140000002fcaa7363cffffff40d563270c000002b8645ff1c1fffff6eeb16ada2400001bc500a8c3f1bfffb19785ab03ec0000ccbb784faea5fffe1055129d66a400045b40961dd90efff6df47ea0a9abc0011d73942311761ffdf6bda39370cf40037a7c088ec9f347fa6f398be8567ac0085929ae237e47dff44024275c44ca400f86aba76aa5194fecb9ed1e8470d7c0167c6b5c657c599fe75681fdc23dcf40196ec9f24fb04245e75681fdc23dcf40167c6b5c657c599fecb9ed1e8470d7c00f86aba76aa5194ff44024275c44ca40085929ae237e47dffa6f398be8567ac0037a7c088ec9f347fdf6bda39370cf40011d73942311761fff6df47ea0a9abc00045b40961dd90efffe1055129d66a40000ccbb784faea5ffffb19785ab03ec00001bc500a8c3f1bffff6eeb16ada24000002b8645ff1c1ffffff40d563270c0000002fcaa7363cfffffff52de3cd140000000234481d55ffffffff9967407c00000000107d1ec77ffffffffdaf8fe40000000000478049fffffffffff8ba8c0000000000009b1efffffffffffff5d4000000000000007dfffffffffffffffc00000000000000001n],
+ [-0xfffffffffffffffen, 64n, 0xffffffffffffff800000000000001f7ffffffffffffaea0000000000009b1efffffffffff1751800000000011e0127ffffffffed7c7f200000000107d1ec77fffffff32ce80f800000008d1207557ffffffa96f1e68a0000002fcaa7363cfffffe81aac64e1800000ae1917fc707ffffb7758b56d1200001bc500a8c3f1bfff632f0b5607d8000332ede13eba97fff082a894eb35200045b40961dd90effedbe8fd415357800475ce508c45d87fefb5ed1c9b867a0037a7c088ec9f347f4de7317d0acf5802164a6b88df91f7fa201213ae2265200f86aba76aa5194fd973da3d08e1af8059f1ad7195f1667f3ab40fee11ee7a0196ec9f24fb04245cead03fb847b9e8059f1ad7195f1667f65cf68f42386be00f86aba76aa5194fe880484eb88994802164a6b88df91f7fd379cc5f42b3d60037a7c088ec9f347fbed7b4726e19e800475ce508c45d87ffb6fa3f5054d5e00045b40961dd90efffc20aa253acd48000332ede13eba97fffd8cbc2d581f600001bc500a8c3f1bfffeddd62d5b44800000ae1917fc707fffffa06ab193860000002fcaa7363cffffffea5bc79a2800000008d1207557fffffffccb3a03e00000000107d1ec77ffffffffb5f1fc800000000011e0127ffffffffffc5d460000000000009b1effffffffffffeba800000000000001f7ffffffffffffffe000000000000000010000000000000000n],
+ [-0x8000000000000001n, 64n, 0x100000000000000800000000000001f80000000000005160000000000009b1f00000000000e8ae800000000011e012800000000128380e00000000107d1ec780000000cd317f0800000008d12075580000005690e19760000002fcaa7363d0000017e5539b1e800000ae1917fc7080000488a74a92ee00001bc500a8c3f1c0009cd0f4a9f828000332ede13eba98000f7d576b14cae00045b40961dd90f001241702beaca8800475ce508c45d880104a12e36479860037a7c088ec9f3480b218ce82f530a802164a6b88df91f805dfedec51dd9ae00f86aba76aa51950268c25c2f71e508059f1ad7195f16680c54bf011ee11860196ec9f24fb042463152fc047b84618059f1ad7195f166809a30970bdc794200f86aba76aa51950177fb7b147766b802164a6b88df91f802c8633a0bd4c2a0037a7c088ec9f348041284b8d91e61800475ce508c45d88004905c0afab2a200045b40961dd90f0003df55dac532b8000332ede13eba9800027343d2a7e0a00001bc500a8c3f1c00012229d2a4bb800000ae1917fc708000005f954e6c7a0000002fcaa7363d00000015a43865d800000008d12075580000000334c5fc200000000107d1ec78000000004a0e03800000000011e012800000000003a2ba0000000000009b1f000000000000145800000000000001f800000000000000200000000000000001n],
+ [-0x8000000000000000n, 64n, 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, 64n, 0xffffffffffffff800000000000001f7ffffffffffffaea0000000000009b1efffffffffff1751800000000011e0127ffffffffed7c7f200000000107d1ec77fffffff32ce80f800000008d1207557ffffffa96f1e68a0000002fcaa7363cfffffe81aac64e1800000ae1917fc707ffffb7758b56d1200001bc500a8c3f1bfff632f0b5607d8000332ede13eba97fff082a894eb35200045b40961dd90effedbe8fd415357800475ce508c45d87fefb5ed1c9b867a0037a7c088ec9f347f4de7317d0acf5802164a6b88df91f7fa201213ae2265200f86aba76aa5194fd973da3d08e1af8059f1ad7195f1667f3ab40fee11ee7a0196ec9f24fb04245cead03fb847b9e8059f1ad7195f1667f65cf68f42386be00f86aba76aa5194fe880484eb88994802164a6b88df91f7fd379cc5f42b3d60037a7c088ec9f347fbed7b4726e19e800475ce508c45d87ffb6fa3f5054d5e00045b40961dd90efffc20aa253acd48000332ede13eba97fffd8cbc2d581f600001bc500a8c3f1bfffeddd62d5b44800000ae1917fc707fffffa06ab193860000002fcaa7363cffffffea5bc79a2800000008d1207557fffffffccb3a03e00000000107d1ec77ffffffffb5f1fc800000000011e0127ffffffffffc5d460000000000009b1effffffffffffeba800000000000001f7ffffffffffffffe00000000000000001n],
+ [-0x7ffffffffffffffen, 64n, 0xffffffffffffff000000000000007dffffffffffffd750000000000009b1effffffffffe2ea30000000000478049fffffffff6be3f900000000107d1ec77ffffffe659d01f0000000234481d55ffffffd4b78f3450000002fcaa7363cfffffd03558c9c3000002b8645ff1c1ffffdbbac5ab68900001bc500a8c3f1bffec65e16ac0fb0000ccbb784faea5fff841544a759a900045b40961dd90effdb7d1fa82a6af0011d73942311761ff7daf68e4dc33d0037a7c088ec9f347e9bce62fa159eb0085929ae237e47dfd100909d71132900f86aba76aa5194fb2e7b47a11c35f0167c6b5c657c599f9d5a07f708f73d0196ec9f24fb042459d5a07f708f73d0167c6b5c657c599fb2e7b47a11c35f00f86aba76aa5194fd100909d7113290085929ae237e47dfe9bce62fa159eb0037a7c088ec9f347f7daf68e4dc33d0011d73942311761ffdb7d1fa82a6af00045b40961dd90efff841544a759a90000ccbb784faea5fffec65e16ac0fb00001bc500a8c3f1bfffdbbac5ab689000002b8645ff1c1fffffd03558c9c30000002fcaa7363cffffffd4b78f3450000000234481d55fffffffe659d01f00000000107d1ec77ffffffff6be3f90000000000478049ffffffffffe2ea30000000000009b1effffffffffffd75000000000000007dfffffffffffffff000000000000000010000000000000000n],
+ [-0x100000001n, 64n, 0x100000040000007e00000a2c00009b1f000745740047804a0250701c107d1ec7e698bf8634481d60d21c331bcaa736fc2a9cdbac645ffad34e9541a100a9125a3a55c8cf78519e50ed66f49c9626f9c716073c7d4251ab87c7009acc8945ab9bc2002aeee2f3e23b8b341e1677deb2c31920b939c7e25d7a25730fab26859c048543e9c1c78c26c818b15d3e77664f528ac145f6e290f0e541b24014890d335a46daca45423a381a15f9c084961fc8b9ed636617784ffd0e7a5517d900a8cd030e952894645ff2812a9cd923caa73647d21c32ee34481d566698bf84107d1ec78250701c0047804a0007457400009b1f00000a2c0000007e00000004000000001n],
+ [-0x100000000n, 64n, 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0xffffffffn, 64n, 0xffffffc0000007dfffff5d400009b1efff8ba8c00478049fdaf8fe4107d1ec71967407e34481d4b2de3cd43caa7357dd56329c4645fe8b0b16af5e900a8758945abd0a7784dbefb12a1c1e49614b856ea1c71f54210833c396eb4b4889392cd3f0afa46e17be6c076bcb75e7575f066e9aed431c4cd2db9ddbac99323706c443d8ba3a9c523646be93f783675ee53d77649df3ee1ded816bebd0f6c88cc0b0eb948e42d4227f6a9ea0ef5fc961be964129e335f784f603d85ab1fb100a8bae0716adcdc645ff102d563273bcaa736322de3cd1634481d559967407c107d1ec77daf8fe400478049fff8ba8c00009b1efffff5d40000007dfffffffc000000001n],
+ [-0xfffffffen, 64n, 0xffffff8000001f7ffffaea00009b1efff17518011e0127ed7c7f2107d1ec6b2ce8100d12075016f1e6b9caa734beaac658f9917f7e7d8b588d700a82720cb593ac5e12f3d409530e92960b979ed45c925d07bfbc59cd32e3a883a8665ff2119c382ffa40bbda910c74418f38d62d35cf0d0a5766fa8db1921e5d4641de6d4bf0fbc0cf751bf17875325619ed9ee3b386172ebdf7a5b9688ab76e8f2b576cd087b57c7509a89e9619f9b9253e0035e13c47542d59dbb00a8b1cf22d5bf29917fc10eab193b5caa736275bc79a30d1207554cb3a03e107d1ec77b5f1fc8011e0127ffc5d4600009b1effffeba8000001f7ffffffe0000000010000000000000000n],
+ [-0x80000001n, 64n, 0x10000008000001f8000051600009b1f000e8ae8011e0128128380e107d1ec84d317f10d12075ae90e19a5caa737bb5539bcc991800f9274aaeb300a960c2b4ad2b15e14e37ef6b5a7ee96301a7f2c32276d09c8feb639c2146899eb803050b7b138ebf7fe46164468791313f13510ffdf25b3d569384fe25281033e4ad5760ef23021fd8cd4e3fc78224d10168db1238ba7f5320f4f3ea892dc7800dd942fd090d6348aff0de29621b864dac865a5e1412ddbd2a99cf00a8d6145d2a5699917fcd0154e6ca9caa73652a43865e0d120755b34c5fc2107d1ec784a0e038011e0128003a2ba00009b1f00001458000001f80000002000000001n],
+ [-0x80000000n, 64n, 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [-0x7fffffffn, 64n, 0xffffff8000001f7ffffaea00009b1efff17518011e0127ed7c7f2107d1ec6b2ce8100d12075016f1e6b9caa734beaac658f9917f7e7d8b588d700a82720cb593ac5e12f3d409530e92960b979ed45c925d07bfbc59cd32e3a883a8665ff2119c382ffa40bbda910c74418f38d62d35cf0d0a5766fa8db1921e5d4641de6d4bf0fbc0cf751bf17875325619ed9ee3b386172ebdf7a5b9688ab76e8f2b576cd087b57c7509a89e9619f9b9253e0035e13c47542d59dbb00a8b1cf22d5bf29917fc10eab193b5caa736275bc79a30d1207554cb3a03e107d1ec77b5f1fc8011e0127ffc5d4600009b1effffeba8000001f7ffffffe000000001n],
+ [-0x7ffffffen, 64n, 0xffffff0000007dffffd7500009b1effe2ea300478049f6be3f9107d1ec5e59d02134481d2ab78f374caa73340558cc7b645fcd7cc5ad24e00a78a4fd6b8db67847effa4abb4e995f9562ea947de841aec6cae856afd87886d97826ec85df47ed87e697de371d8ccdcb798a14c02d661989fe3dc1ed0a4a3e70bdf2c18640e1b0a2e1973ba5a9edf6a5c3e0d3b2e0fd901ab886a4e9d65f9a76420c9481a8701ef96161a634a82664784e750416adcc000a89fac85ab941645feec5558c9f2caa73611b78f34734481d54659d01f107d1ec776be3f900478049ffe2ea300009b1effffd750000007dfffffff0000000010000000000000000n],
+ [-9n, 64n, 0x75648e690da5a4d2eefe4588f7cfb7be364804214818a867a01n],
+ [-8n, 64n, 0x1000000000000000000000000000000000000000000000000n],
+ [-7n, 64n, 0xcbc21fe4561c8d63b78e780e1341e199417c8c0bb7601n],
+ [-6n, 64n, 0x2b56d4af8f7932278c797ebd010000000000000000n],
+ [-5n, 64n, 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f01n],
+ [-4n, 64n, 0x100000000000000000000000000000000n],
+ [-3n, 64n, 0x2b56d4af8f7932278c797ebd01n],
+ [-2n, 64n, 0x10000000000000000n],
+ [-1n, 64n, 1n],
+ [0n, 64n, 0n],
+ [1n, 64n, 1n],
+ [2n, 64n, 0x10000000000000000n],
+ [3n, 64n, 0x2b56d4af8f7932278c797ebd01n],
+ [4n, 64n, 0x100000000000000000000000000000000n],
+ [5n, 64n, 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f01n],
+ [6n, 64n, 0x2b56d4af8f7932278c797ebd010000000000000000n],
+ [7n, 64n, 0xcbc21fe4561c8d63b78e780e1341e199417c8c0bb7601n],
+ [8n, 64n, 0x1000000000000000000000000000000000000000000000000n],
+ [9n, 64n, 0x75648e690da5a4d2eefe4588f7cfb7be364804214818a867a01n],
+ [0x7ffffffen, 64n, 0xffffff0000007dffffd7500009b1effe2ea300478049f6be3f9107d1ec5e59d02134481d2ab78f374caa73340558cc7b645fcd7cc5ad24e00a78a4fd6b8db67847effa4abb4e995f9562ea947de841aec6cae856afd87886d97826ec85df47ed87e697de371d8ccdcb798a14c02d661989fe3dc1ed0a4a3e70bdf2c18640e1b0a2e1973ba5a9edf6a5c3e0d3b2e0fd901ab886a4e9d65f9a76420c9481a8701ef96161a634a82664784e750416adcc000a89fac85ab941645feec5558c9f2caa73611b78f34734481d54659d01f107d1ec776be3f900478049ffe2ea300009b1effffd750000007dfffffff0000000010000000000000000n],
+ [0x7fffffffn, 64n, 0xffffff8000001f7ffffaea00009b1efff17518011e0127ed7c7f2107d1ec6b2ce8100d12075016f1e6b9caa734beaac658f9917f7e7d8b588d700a82720cb593ac5e12f3d409530e92960b979ed45c925d07bfbc59cd32e3a883a8665ff2119c382ffa40bbda910c74418f38d62d35cf0d0a5766fa8db1921e5d4641de6d4bf0fbc0cf751bf17875325619ed9ee3b386172ebdf7a5b9688ab76e8f2b576cd087b57c7509a89e9619f9b9253e0035e13c47542d59dbb00a8b1cf22d5bf29917fc10eab193b5caa736275bc79a30d1207554cb3a03e107d1ec77b5f1fc8011e0127ffc5d4600009b1effffeba8000001f7ffffffe000000001n],
+ [0x80000000n, 64n, 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x80000001n, 64n, 0x10000008000001f8000051600009b1f000e8ae8011e0128128380e107d1ec84d317f10d12075ae90e19a5caa737bb5539bcc991800f9274aaeb300a960c2b4ad2b15e14e37ef6b5a7ee96301a7f2c32276d09c8feb639c2146899eb803050b7b138ebf7fe46164468791313f13510ffdf25b3d569384fe25281033e4ad5760ef23021fd8cd4e3fc78224d10168db1238ba7f5320f4f3ea892dc7800dd942fd090d6348aff0de29621b864dac865a5e1412ddbd2a99cf00a8d6145d2a5699917fcd0154e6ca9caa73652a43865e0d120755b34c5fc2107d1ec784a0e038011e0128003a2ba00009b1f00001458000001f80000002000000001n],
+ [0xfffffffen, 64n, 0xffffff8000001f7ffffaea00009b1efff17518011e0127ed7c7f2107d1ec6b2ce8100d12075016f1e6b9caa734beaac658f9917f7e7d8b588d700a82720cb593ac5e12f3d409530e92960b979ed45c925d07bfbc59cd32e3a883a8665ff2119c382ffa40bbda910c74418f38d62d35cf0d0a5766fa8db1921e5d4641de6d4bf0fbc0cf751bf17875325619ed9ee3b386172ebdf7a5b9688ab76e8f2b576cd087b57c7509a89e9619f9b9253e0035e13c47542d59dbb00a8b1cf22d5bf29917fc10eab193b5caa736275bc79a30d1207554cb3a03e107d1ec77b5f1fc8011e0127ffc5d4600009b1effffeba8000001f7ffffffe0000000010000000000000000n],
+ [0xffffffffn, 64n, 0xffffffc0000007dfffff5d400009b1efff8ba8c00478049fdaf8fe4107d1ec71967407e34481d4b2de3cd43caa7357dd56329c4645fe8b0b16af5e900a8758945abd0a7784dbefb12a1c1e49614b856ea1c71f54210833c396eb4b4889392cd3f0afa46e17be6c076bcb75e7575f066e9aed431c4cd2db9ddbac99323706c443d8ba3a9c523646be93f783675ee53d77649df3ee1ded816bebd0f6c88cc0b0eb948e42d4227f6a9ea0ef5fc961be964129e335f784f603d85ab1fb100a8bae0716adcdc645ff102d563273bcaa736322de3cd1634481d559967407c107d1ec77daf8fe400478049fff8ba8c00009b1efffff5d40000007dfffffffc000000001n],
+ [0x100000000n, 64n, 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x100000001n, 64n, 0x100000040000007e00000a2c00009b1f000745740047804a0250701c107d1ec7e698bf8634481d60d21c331bcaa736fc2a9cdbac645ffad34e9541a100a9125a3a55c8cf78519e50ed66f49c9626f9c716073c7d4251ab87c7009acc8945ab9bc2002aeee2f3e23b8b341e1677deb2c31920b939c7e25d7a25730fab26859c048543e9c1c78c26c818b15d3e77664f528ac145f6e290f0e541b24014890d335a46daca45423a381a15f9c084961fc8b9ed636617784ffd0e7a5517d900a8cd030e952894645ff2812a9cd923caa73647d21c32ee34481d566698bf84107d1ec78250701c0047804a0007457400009b1f00000a2c0000007e00000004000000001n],
+ [0x7ffffffffffffffen, 64n, 0xffffffffffffff000000000000007dffffffffffffd750000000000009b1effffffffffe2ea30000000000478049fffffffff6be3f900000000107d1ec77ffffffe659d01f0000000234481d55ffffffd4b78f3450000002fcaa7363cfffffd03558c9c3000002b8645ff1c1ffffdbbac5ab68900001bc500a8c3f1bffec65e16ac0fb0000ccbb784faea5fff841544a759a900045b40961dd90effdb7d1fa82a6af0011d73942311761ff7daf68e4dc33d0037a7c088ec9f347e9bce62fa159eb0085929ae237e47dfd100909d71132900f86aba76aa5194fb2e7b47a11c35f0167c6b5c657c599f9d5a07f708f73d0196ec9f24fb042459d5a07f708f73d0167c6b5c657c599fb2e7b47a11c35f00f86aba76aa5194fd100909d7113290085929ae237e47dfe9bce62fa159eb0037a7c088ec9f347f7daf68e4dc33d0011d73942311761ffdb7d1fa82a6af00045b40961dd90efff841544a759a90000ccbb784faea5fffec65e16ac0fb00001bc500a8c3f1bfffdbbac5ab689000002b8645ff1c1fffffd03558c9c30000002fcaa7363cffffffd4b78f3450000000234481d55fffffffe659d01f00000000107d1ec77ffffffff6be3f90000000000478049ffffffffffe2ea30000000000009b1effffffffffffd75000000000000007dfffffffffffffff000000000000000010000000000000000n],
+ [0x7fffffffffffffffn, 64n, 0xffffffffffffff800000000000001f7ffffffffffffaea0000000000009b1efffffffffff1751800000000011e0127ffffffffed7c7f200000000107d1ec77fffffff32ce80f800000008d1207557ffffffa96f1e68a0000002fcaa7363cfffffe81aac64e1800000ae1917fc707ffffb7758b56d1200001bc500a8c3f1bfff632f0b5607d8000332ede13eba97fff082a894eb35200045b40961dd90effedbe8fd415357800475ce508c45d87fefb5ed1c9b867a0037a7c088ec9f347f4de7317d0acf5802164a6b88df91f7fa201213ae2265200f86aba76aa5194fd973da3d08e1af8059f1ad7195f1667f3ab40fee11ee7a0196ec9f24fb04245cead03fb847b9e8059f1ad7195f1667f65cf68f42386be00f86aba76aa5194fe880484eb88994802164a6b88df91f7fd379cc5f42b3d60037a7c088ec9f347fbed7b4726e19e800475ce508c45d87ffb6fa3f5054d5e00045b40961dd90efffc20aa253acd48000332ede13eba97fffd8cbc2d581f600001bc500a8c3f1bfffeddd62d5b44800000ae1917fc707fffffa06ab193860000002fcaa7363cffffffea5bc79a2800000008d1207557fffffffccb3a03e00000000107d1ec77ffffffffb5f1fc800000000011e0127ffffffffffc5d460000000000009b1effffffffffffeba800000000000001f7ffffffffffffffe00000000000000001n],
+ [0x8000000000000000n, 64n, 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x8000000000000001n, 64n, 0x100000000000000800000000000001f80000000000005160000000000009b1f00000000000e8ae800000000011e012800000000128380e00000000107d1ec780000000cd317f0800000008d12075580000005690e19760000002fcaa7363d0000017e5539b1e800000ae1917fc7080000488a74a92ee00001bc500a8c3f1c0009cd0f4a9f828000332ede13eba98000f7d576b14cae00045b40961dd90f001241702beaca8800475ce508c45d880104a12e36479860037a7c088ec9f3480b218ce82f530a802164a6b88df91f805dfedec51dd9ae00f86aba76aa51950268c25c2f71e508059f1ad7195f16680c54bf011ee11860196ec9f24fb042463152fc047b84618059f1ad7195f166809a30970bdc794200f86aba76aa51950177fb7b147766b802164a6b88df91f802c8633a0bd4c2a0037a7c088ec9f348041284b8d91e61800475ce508c45d88004905c0afab2a200045b40961dd90f0003df55dac532b8000332ede13eba9800027343d2a7e0a00001bc500a8c3f1c00012229d2a4bb800000ae1917fc708000005f954e6c7a0000002fcaa7363d00000015a43865d800000008d12075580000000334c5fc200000000107d1ec78000000004a0e03800000000011e012800000000003a2ba0000000000009b1f000000000000145800000000000001f800000000000000200000000000000001n],
+ [0xfffffffffffffffen, 64n, 0xffffffffffffff800000000000001f7ffffffffffffaea0000000000009b1efffffffffff1751800000000011e0127ffffffffed7c7f200000000107d1ec77fffffff32ce80f800000008d1207557ffffffa96f1e68a0000002fcaa7363cfffffe81aac64e1800000ae1917fc707ffffb7758b56d1200001bc500a8c3f1bfff632f0b5607d8000332ede13eba97fff082a894eb35200045b40961dd90effedbe8fd415357800475ce508c45d87fefb5ed1c9b867a0037a7c088ec9f347f4de7317d0acf5802164a6b88df91f7fa201213ae2265200f86aba76aa5194fd973da3d08e1af8059f1ad7195f1667f3ab40fee11ee7a0196ec9f24fb04245cead03fb847b9e8059f1ad7195f1667f65cf68f42386be00f86aba76aa5194fe880484eb88994802164a6b88df91f7fd379cc5f42b3d60037a7c088ec9f347fbed7b4726e19e800475ce508c45d87ffb6fa3f5054d5e00045b40961dd90efffc20aa253acd48000332ede13eba97fffd8cbc2d581f600001bc500a8c3f1bfffeddd62d5b44800000ae1917fc707fffffa06ab193860000002fcaa7363cffffffea5bc79a2800000008d1207557fffffffccb3a03e00000000107d1ec77ffffffffb5f1fc800000000011e0127ffffffffffc5d460000000000009b1effffffffffffeba800000000000001f7ffffffffffffffe000000000000000010000000000000000n],
+ [0xffffffffffffffffn, 64n, 0xffffffffffffffc000000000000007dfffffffffffff5d40000000000009b1efffffffffff8ba8c0000000000478049fffffffffdaf8fe400000000107d1ec77fffffff9967407c0000000234481d55fffffff52de3cd140000002fcaa7363cffffff40d563270c000002b8645ff1c1fffff6eeb16ada2400001bc500a8c3f1bfffb19785ab03ec0000ccbb784faea5fffe1055129d66a400045b40961dd90efff6df47ea0a9abc0011d73942311761ffdf6bda39370cf40037a7c088ec9f347fa6f398be8567ac0085929ae237e47dff44024275c44ca400f86aba76aa5194fecb9ed1e8470d7c0167c6b5c657c599fe75681fdc23dcf40196ec9f24fb04245e75681fdc23dcf40167c6b5c657c599fecb9ed1e8470d7c00f86aba76aa5194ff44024275c44ca40085929ae237e47dffa6f398be8567ac0037a7c088ec9f347fdf6bda39370cf40011d73942311761fff6df47ea0a9abc00045b40961dd90efffe1055129d66a40000ccbb784faea5ffffb19785ab03ec00001bc500a8c3f1bffff6eeb16ada24000002b8645ff1c1ffffff40d563270c0000002fcaa7363cfffffff52de3cd140000000234481d55ffffffff9967407c00000000107d1ec77ffffffffdaf8fe40000000000478049fffffffffff8ba8c0000000000009b1efffffffffffff5d4000000000000007dfffffffffffffffc00000000000000001n],
+ [0x10000000000000000n, 64n, 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n],
+ [0x10000000000000001n, 64n, 0x1000000000000004000000000000007e0000000000000a2c0000000000009b1f0000000000074574000000000047804a000000000250701c00000000107d1ec7800000006698bf840000000234481d560000000ad21c32ec0000002fcaa7363d000000bf2a9cd8f4000002b8645ff1c2000009114e9525dc00001bc500a8c3f1c0004e687a54fc140000ccbb784faea60001efaaed62995c00045b40961dd90f000920b815f565440011d7394231176200209425c6c8f30c0037a7c088ec9f3480590c67417a98540085929ae237e47e00bbfdbd8a3bb35c00f86aba76aa51950134612e17b8f2840167c6b5c657c59a018a97e023dc230c0196ec9f24fb0424618a97e023dc230c0167c6b5c657c59a0134612e17b8f28400f86aba76aa519500bbfdbd8a3bb35c0085929ae237e47e00590c67417a98540037a7c088ec9f3480209425c6c8f30c0011d73942311762000920b815f5654400045b40961dd90f0001efaaed62995c0000ccbb784faea600004e687a54fc1400001bc500a8c3f1c00009114e9525dc000002b8645ff1c2000000bf2a9cd8f40000002fcaa7363d0000000ad21c32ec0000000234481d56000000006698bf8400000000107d1ec7800000000250701c000000000047804a00000000000745740000000000009b1f0000000000000a2c000000000000007e000000000000000400000000000000001n],
+];
+
+// Cases not covered above.
+tests.push(
+ // 0 ** (2**31)
+ // 0 ** (2**32)
+ // 0 ** (2**63)
+ // 0 ** (2**64)
+ [0n, 0x7fffffffn, 0n],
+ [0n, 0x80000000n, 0n],
+ [0n, 0x80000001n, 0n],
+ [0n, 0xffffffffn, 0n],
+ [0n, 0x100000000n, 0n],
+ [0n, 0x100000001n, 0n],
+ [0n, 0x7fffffffffffffffn, 0n],
+ [0n, 0x8000000000000000n, 0n],
+ [0n, 0x8000000000000001n, 0n],
+ [0n, 0xffffffffffffffffn, 0n],
+ [0n, 0x10000000000000000n, 0n],
+ [0n, 0x10000000000000001n, 0n],
+
+ // 1 ** (2**31)
+ // 1 ** (2**32)
+ // 1 ** (2**63)
+ // 1 ** (2**64)
+ [1n, 0x7fffffffn, 1n],
+ [1n, 0x80000000n, 1n],
+ [1n, 0x80000001n, 1n],
+ [1n, 0xffffffffn, 1n],
+ [1n, 0x100000000n, 1n],
+ [1n, 0x100000001n, 1n],
+ [1n, 0x7fffffffffffffffn, 1n],
+ [1n, 0x8000000000000000n, 1n],
+ [1n, 0x8000000000000001n, 1n],
+ [1n, 0xffffffffffffffffn, 1n],
+ [1n, 0x10000000000000000n, 1n],
+ [1n, 0x10000000000000001n, 1n],
+
+ // -1 ** (2**31)
+ // -1 ** (2**32)
+ // -1 ** (2**63)
+ // -1 ** (2**64)
+ [-1n, 0x7fffffffn, -1n],
+ [-1n, 0x80000000n, 1n],
+ [-1n, 0x80000001n, -1n],
+ [-1n, 0xffffffffn, -1n],
+ [-1n, 0x100000000n, 1n],
+ [-1n, 0x100000001n, -1n],
+ [-1n, 0x7fffffffffffffffn, -1n],
+ [-1n, 0x8000000000000000n, 1n],
+ [-1n, 0x8000000000000001n, -1n],
+ [-1n, 0xffffffffffffffffn, -1n],
+ [-1n, 0x10000000000000000n, 1n],
+ [-1n, 0x10000000000000001n, -1n],
+);
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs ** rhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-rsh.js b/js/src/jit-test/tests/bigint/bigint-rsh.js
new file mode 100644
index 0000000000..b1cda65af8
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-rsh.js
@@ -0,0 +1,894 @@
+const tests = [
+ [-0x10000000000000001n, 0n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0n, -0x100000001n],
+ [-0x100000000n, 0n, -0x100000000n],
+ [-0xffffffffn, 0n, -0xffffffffn],
+ [-0xfffffffen, 0n, -0xfffffffen],
+ [-0x80000001n, 0n, -0x80000001n],
+ [-0x80000000n, 0n, -0x80000000n],
+ [-0x7fffffffn, 0n, -0x7fffffffn],
+ [-0x7ffffffen, 0n, -0x7ffffffen],
+ [-9n, 0n, -9n],
+ [-8n, 0n, -8n],
+ [-7n, 0n, -7n],
+ [-6n, 0n, -6n],
+ [-5n, 0n, -5n],
+ [-4n, 0n, -4n],
+ [-3n, 0n, -3n],
+ [-2n, 0n, -2n],
+ [-1n, 0n, -1n],
+ [0n, 0n, 0n],
+ [1n, 0n, 1n],
+ [2n, 0n, 2n],
+ [3n, 0n, 3n],
+ [4n, 0n, 4n],
+ [5n, 0n, 5n],
+ [6n, 0n, 6n],
+ [7n, 0n, 7n],
+ [8n, 0n, 8n],
+ [9n, 0n, 9n],
+ [0x7ffffffen, 0n, 0x7ffffffen],
+ [0x7fffffffn, 0n, 0x7fffffffn],
+ [0x80000000n, 0n, 0x80000000n],
+ [0x80000001n, 0n, 0x80000001n],
+ [0xfffffffen, 0n, 0xfffffffen],
+ [0xffffffffn, 0n, 0xffffffffn],
+ [0x100000000n, 0n, 0x100000000n],
+ [0x100000001n, 0n, 0x100000001n],
+ [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0n, 0x8000000000000000n],
+ [0x8000000000000001n, 0n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0n, 0x10000000000000000n],
+ [0x10000000000000001n, 0n, 0x10000000000000001n],
+ [-0x10000000000000001n, 1n, -0x8000000000000001n],
+ [-0x10000000000000000n, 1n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, 1n, -0x8000000000000000n],
+ [-0xfffffffffffffffen, 1n, -0x7fffffffffffffffn],
+ [-0x8000000000000001n, 1n, -0x4000000000000001n],
+ [-0x8000000000000000n, 1n, -0x4000000000000000n],
+ [-0x7fffffffffffffffn, 1n, -0x4000000000000000n],
+ [-0x7ffffffffffffffen, 1n, -0x3fffffffffffffffn],
+ [-0x100000001n, 1n, -0x80000001n],
+ [-0x100000000n, 1n, -0x80000000n],
+ [-0xffffffffn, 1n, -0x80000000n],
+ [-0xfffffffen, 1n, -0x7fffffffn],
+ [-0x80000001n, 1n, -0x40000001n],
+ [-0x80000000n, 1n, -0x40000000n],
+ [-0x7fffffffn, 1n, -0x40000000n],
+ [-0x7ffffffen, 1n, -0x3fffffffn],
+ [-9n, 1n, -5n],
+ [-8n, 1n, -4n],
+ [-7n, 1n, -4n],
+ [-6n, 1n, -3n],
+ [-5n, 1n, -3n],
+ [-4n, 1n, -2n],
+ [-3n, 1n, -2n],
+ [-2n, 1n, -1n],
+ [-1n, 1n, -1n],
+ [0n, 1n, 0n],
+ [1n, 1n, 0n],
+ [2n, 1n, 1n],
+ [3n, 1n, 1n],
+ [4n, 1n, 2n],
+ [5n, 1n, 2n],
+ [6n, 1n, 3n],
+ [7n, 1n, 3n],
+ [8n, 1n, 4n],
+ [9n, 1n, 4n],
+ [0x7ffffffen, 1n, 0x3fffffffn],
+ [0x7fffffffn, 1n, 0x3fffffffn],
+ [0x80000000n, 1n, 0x40000000n],
+ [0x80000001n, 1n, 0x40000000n],
+ [0xfffffffen, 1n, 0x7fffffffn],
+ [0xffffffffn, 1n, 0x7fffffffn],
+ [0x100000000n, 1n, 0x80000000n],
+ [0x100000001n, 1n, 0x80000000n],
+ [0x7ffffffffffffffen, 1n, 0x3fffffffffffffffn],
+ [0x7fffffffffffffffn, 1n, 0x3fffffffffffffffn],
+ [0x8000000000000000n, 1n, 0x4000000000000000n],
+ [0x8000000000000001n, 1n, 0x4000000000000000n],
+ [0xfffffffffffffffen, 1n, 0x7fffffffffffffffn],
+ [0xffffffffffffffffn, 1n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, 1n, 0x8000000000000000n],
+ [0x10000000000000001n, 1n, 0x8000000000000000n],
+ [-0x10000000000000001n, 2n, -0x4000000000000001n],
+ [-0x10000000000000000n, 2n, -0x4000000000000000n],
+ [-0xffffffffffffffffn, 2n, -0x4000000000000000n],
+ [-0xfffffffffffffffen, 2n, -0x4000000000000000n],
+ [-0x8000000000000001n, 2n, -0x2000000000000001n],
+ [-0x8000000000000000n, 2n, -0x2000000000000000n],
+ [-0x7fffffffffffffffn, 2n, -0x2000000000000000n],
+ [-0x7ffffffffffffffen, 2n, -0x2000000000000000n],
+ [-0x100000001n, 2n, -0x40000001n],
+ [-0x100000000n, 2n, -0x40000000n],
+ [-0xffffffffn, 2n, -0x40000000n],
+ [-0xfffffffen, 2n, -0x40000000n],
+ [-0x80000001n, 2n, -0x20000001n],
+ [-0x80000000n, 2n, -0x20000000n],
+ [-0x7fffffffn, 2n, -0x20000000n],
+ [-0x7ffffffen, 2n, -0x20000000n],
+ [-9n, 2n, -3n],
+ [-8n, 2n, -2n],
+ [-7n, 2n, -2n],
+ [-6n, 2n, -2n],
+ [-5n, 2n, -2n],
+ [-4n, 2n, -1n],
+ [-3n, 2n, -1n],
+ [-2n, 2n, -1n],
+ [-1n, 2n, -1n],
+ [0n, 2n, 0n],
+ [1n, 2n, 0n],
+ [2n, 2n, 0n],
+ [3n, 2n, 0n],
+ [4n, 2n, 1n],
+ [5n, 2n, 1n],
+ [6n, 2n, 1n],
+ [7n, 2n, 1n],
+ [8n, 2n, 2n],
+ [9n, 2n, 2n],
+ [0x7ffffffen, 2n, 0x1fffffffn],
+ [0x7fffffffn, 2n, 0x1fffffffn],
+ [0x80000000n, 2n, 0x20000000n],
+ [0x80000001n, 2n, 0x20000000n],
+ [0xfffffffen, 2n, 0x3fffffffn],
+ [0xffffffffn, 2n, 0x3fffffffn],
+ [0x100000000n, 2n, 0x40000000n],
+ [0x100000001n, 2n, 0x40000000n],
+ [0x7ffffffffffffffen, 2n, 0x1fffffffffffffffn],
+ [0x7fffffffffffffffn, 2n, 0x1fffffffffffffffn],
+ [0x8000000000000000n, 2n, 0x2000000000000000n],
+ [0x8000000000000001n, 2n, 0x2000000000000000n],
+ [0xfffffffffffffffen, 2n, 0x3fffffffffffffffn],
+ [0xffffffffffffffffn, 2n, 0x3fffffffffffffffn],
+ [0x10000000000000000n, 2n, 0x4000000000000000n],
+ [0x10000000000000001n, 2n, 0x4000000000000000n],
+ [-0x10000000000000001n, 3n, -0x2000000000000001n],
+ [-0x10000000000000000n, 3n, -0x2000000000000000n],
+ [-0xffffffffffffffffn, 3n, -0x2000000000000000n],
+ [-0xfffffffffffffffen, 3n, -0x2000000000000000n],
+ [-0x8000000000000001n, 3n, -0x1000000000000001n],
+ [-0x8000000000000000n, 3n, -0x1000000000000000n],
+ [-0x7fffffffffffffffn, 3n, -0x1000000000000000n],
+ [-0x7ffffffffffffffen, 3n, -0x1000000000000000n],
+ [-0x100000001n, 3n, -0x20000001n],
+ [-0x100000000n, 3n, -0x20000000n],
+ [-0xffffffffn, 3n, -0x20000000n],
+ [-0xfffffffen, 3n, -0x20000000n],
+ [-0x80000001n, 3n, -0x10000001n],
+ [-0x80000000n, 3n, -0x10000000n],
+ [-0x7fffffffn, 3n, -0x10000000n],
+ [-0x7ffffffen, 3n, -0x10000000n],
+ [-9n, 3n, -2n],
+ [-8n, 3n, -1n],
+ [-7n, 3n, -1n],
+ [-6n, 3n, -1n],
+ [-5n, 3n, -1n],
+ [-4n, 3n, -1n],
+ [-3n, 3n, -1n],
+ [-2n, 3n, -1n],
+ [-1n, 3n, -1n],
+ [0n, 3n, 0n],
+ [1n, 3n, 0n],
+ [2n, 3n, 0n],
+ [3n, 3n, 0n],
+ [4n, 3n, 0n],
+ [5n, 3n, 0n],
+ [6n, 3n, 0n],
+ [7n, 3n, 0n],
+ [8n, 3n, 1n],
+ [9n, 3n, 1n],
+ [0x7ffffffen, 3n, 0xfffffffn],
+ [0x7fffffffn, 3n, 0xfffffffn],
+ [0x80000000n, 3n, 0x10000000n],
+ [0x80000001n, 3n, 0x10000000n],
+ [0xfffffffen, 3n, 0x1fffffffn],
+ [0xffffffffn, 3n, 0x1fffffffn],
+ [0x100000000n, 3n, 0x20000000n],
+ [0x100000001n, 3n, 0x20000000n],
+ [0x7ffffffffffffffen, 3n, 0xfffffffffffffffn],
+ [0x7fffffffffffffffn, 3n, 0xfffffffffffffffn],
+ [0x8000000000000000n, 3n, 0x1000000000000000n],
+ [0x8000000000000001n, 3n, 0x1000000000000000n],
+ [0xfffffffffffffffen, 3n, 0x1fffffffffffffffn],
+ [0xffffffffffffffffn, 3n, 0x1fffffffffffffffn],
+ [0x10000000000000000n, 3n, 0x2000000000000000n],
+ [0x10000000000000001n, 3n, 0x2000000000000000n],
+ [-0x10000000000000001n, 4n, -0x1000000000000001n],
+ [-0x10000000000000000n, 4n, -0x1000000000000000n],
+ [-0xffffffffffffffffn, 4n, -0x1000000000000000n],
+ [-0xfffffffffffffffen, 4n, -0x1000000000000000n],
+ [-0x8000000000000001n, 4n, -0x800000000000001n],
+ [-0x8000000000000000n, 4n, -0x800000000000000n],
+ [-0x7fffffffffffffffn, 4n, -0x800000000000000n],
+ [-0x7ffffffffffffffen, 4n, -0x800000000000000n],
+ [-0x100000001n, 4n, -0x10000001n],
+ [-0x100000000n, 4n, -0x10000000n],
+ [-0xffffffffn, 4n, -0x10000000n],
+ [-0xfffffffen, 4n, -0x10000000n],
+ [-0x80000001n, 4n, -0x8000001n],
+ [-0x80000000n, 4n, -0x8000000n],
+ [-0x7fffffffn, 4n, -0x8000000n],
+ [-0x7ffffffen, 4n, -0x8000000n],
+ [-9n, 4n, -1n],
+ [-8n, 4n, -1n],
+ [-7n, 4n, -1n],
+ [-6n, 4n, -1n],
+ [-5n, 4n, -1n],
+ [-4n, 4n, -1n],
+ [-3n, 4n, -1n],
+ [-2n, 4n, -1n],
+ [-1n, 4n, -1n],
+ [0n, 4n, 0n],
+ [1n, 4n, 0n],
+ [2n, 4n, 0n],
+ [3n, 4n, 0n],
+ [4n, 4n, 0n],
+ [5n, 4n, 0n],
+ [6n, 4n, 0n],
+ [7n, 4n, 0n],
+ [8n, 4n, 0n],
+ [9n, 4n, 0n],
+ [0x7ffffffen, 4n, 0x7ffffffn],
+ [0x7fffffffn, 4n, 0x7ffffffn],
+ [0x80000000n, 4n, 0x8000000n],
+ [0x80000001n, 4n, 0x8000000n],
+ [0xfffffffen, 4n, 0xfffffffn],
+ [0xffffffffn, 4n, 0xfffffffn],
+ [0x100000000n, 4n, 0x10000000n],
+ [0x100000001n, 4n, 0x10000000n],
+ [0x7ffffffffffffffen, 4n, 0x7ffffffffffffffn],
+ [0x7fffffffffffffffn, 4n, 0x7ffffffffffffffn],
+ [0x8000000000000000n, 4n, 0x800000000000000n],
+ [0x8000000000000001n, 4n, 0x800000000000000n],
+ [0xfffffffffffffffen, 4n, 0xfffffffffffffffn],
+ [0xffffffffffffffffn, 4n, 0xfffffffffffffffn],
+ [0x10000000000000000n, 4n, 0x1000000000000000n],
+ [0x10000000000000001n, 4n, 0x1000000000000000n],
+ [-0x10000000000000001n, 31n, -0x200000001n],
+ [-0x10000000000000000n, 31n, -0x200000000n],
+ [-0xffffffffffffffffn, 31n, -0x200000000n],
+ [-0xfffffffffffffffen, 31n, -0x200000000n],
+ [-0x8000000000000001n, 31n, -0x100000001n],
+ [-0x8000000000000000n, 31n, -0x100000000n],
+ [-0x7fffffffffffffffn, 31n, -0x100000000n],
+ [-0x7ffffffffffffffen, 31n, -0x100000000n],
+ [-0x100000001n, 31n, -3n],
+ [-0x100000000n, 31n, -2n],
+ [-0xffffffffn, 31n, -2n],
+ [-0xfffffffen, 31n, -2n],
+ [-0x80000001n, 31n, -2n],
+ [-0x80000000n, 31n, -1n],
+ [-0x7fffffffn, 31n, -1n],
+ [-0x7ffffffen, 31n, -1n],
+ [-9n, 31n, -1n],
+ [-8n, 31n, -1n],
+ [-7n, 31n, -1n],
+ [-6n, 31n, -1n],
+ [-5n, 31n, -1n],
+ [-4n, 31n, -1n],
+ [-3n, 31n, -1n],
+ [-2n, 31n, -1n],
+ [-1n, 31n, -1n],
+ [0n, 31n, 0n],
+ [1n, 31n, 0n],
+ [2n, 31n, 0n],
+ [3n, 31n, 0n],
+ [4n, 31n, 0n],
+ [5n, 31n, 0n],
+ [6n, 31n, 0n],
+ [7n, 31n, 0n],
+ [8n, 31n, 0n],
+ [9n, 31n, 0n],
+ [0x7ffffffen, 31n, 0n],
+ [0x7fffffffn, 31n, 0n],
+ [0x80000000n, 31n, 1n],
+ [0x80000001n, 31n, 1n],
+ [0xfffffffen, 31n, 1n],
+ [0xffffffffn, 31n, 1n],
+ [0x100000000n, 31n, 2n],
+ [0x100000001n, 31n, 2n],
+ [0x7ffffffffffffffen, 31n, 0xffffffffn],
+ [0x7fffffffffffffffn, 31n, 0xffffffffn],
+ [0x8000000000000000n, 31n, 0x100000000n],
+ [0x8000000000000001n, 31n, 0x100000000n],
+ [0xfffffffffffffffen, 31n, 0x1ffffffffn],
+ [0xffffffffffffffffn, 31n, 0x1ffffffffn],
+ [0x10000000000000000n, 31n, 0x200000000n],
+ [0x10000000000000001n, 31n, 0x200000000n],
+ [-0x10000000000000001n, 32n, -0x100000001n],
+ [-0x10000000000000000n, 32n, -0x100000000n],
+ [-0xffffffffffffffffn, 32n, -0x100000000n],
+ [-0xfffffffffffffffen, 32n, -0x100000000n],
+ [-0x8000000000000001n, 32n, -0x80000001n],
+ [-0x8000000000000000n, 32n, -0x80000000n],
+ [-0x7fffffffffffffffn, 32n, -0x80000000n],
+ [-0x7ffffffffffffffen, 32n, -0x80000000n],
+ [-0x100000001n, 32n, -2n],
+ [-0x100000000n, 32n, -1n],
+ [-0xffffffffn, 32n, -1n],
+ [-0xfffffffen, 32n, -1n],
+ [-0x80000001n, 32n, -1n],
+ [-0x80000000n, 32n, -1n],
+ [-0x7fffffffn, 32n, -1n],
+ [-0x7ffffffen, 32n, -1n],
+ [-9n, 32n, -1n],
+ [-8n, 32n, -1n],
+ [-7n, 32n, -1n],
+ [-6n, 32n, -1n],
+ [-5n, 32n, -1n],
+ [-4n, 32n, -1n],
+ [-3n, 32n, -1n],
+ [-2n, 32n, -1n],
+ [-1n, 32n, -1n],
+ [0n, 32n, 0n],
+ [1n, 32n, 0n],
+ [2n, 32n, 0n],
+ [3n, 32n, 0n],
+ [4n, 32n, 0n],
+ [5n, 32n, 0n],
+ [6n, 32n, 0n],
+ [7n, 32n, 0n],
+ [8n, 32n, 0n],
+ [9n, 32n, 0n],
+ [0x7ffffffen, 32n, 0n],
+ [0x7fffffffn, 32n, 0n],
+ [0x80000000n, 32n, 0n],
+ [0x80000001n, 32n, 0n],
+ [0xfffffffen, 32n, 0n],
+ [0xffffffffn, 32n, 0n],
+ [0x100000000n, 32n, 1n],
+ [0x100000001n, 32n, 1n],
+ [0x7ffffffffffffffen, 32n, 0x7fffffffn],
+ [0x7fffffffffffffffn, 32n, 0x7fffffffn],
+ [0x8000000000000000n, 32n, 0x80000000n],
+ [0x8000000000000001n, 32n, 0x80000000n],
+ [0xfffffffffffffffen, 32n, 0xffffffffn],
+ [0xffffffffffffffffn, 32n, 0xffffffffn],
+ [0x10000000000000000n, 32n, 0x100000000n],
+ [0x10000000000000001n, 32n, 0x100000000n],
+ [-0x10000000000000001n, 63n, -3n],
+ [-0x10000000000000000n, 63n, -2n],
+ [-0xffffffffffffffffn, 63n, -2n],
+ [-0xfffffffffffffffen, 63n, -2n],
+ [-0x8000000000000001n, 63n, -2n],
+ [-0x8000000000000000n, 63n, -1n],
+ [-0x7fffffffffffffffn, 63n, -1n],
+ [-0x7ffffffffffffffen, 63n, -1n],
+ [-0x100000001n, 63n, -1n],
+ [-0x100000000n, 63n, -1n],
+ [-0xffffffffn, 63n, -1n],
+ [-0xfffffffen, 63n, -1n],
+ [-0x80000001n, 63n, -1n],
+ [-0x80000000n, 63n, -1n],
+ [-0x7fffffffn, 63n, -1n],
+ [-0x7ffffffen, 63n, -1n],
+ [-9n, 63n, -1n],
+ [-8n, 63n, -1n],
+ [-7n, 63n, -1n],
+ [-6n, 63n, -1n],
+ [-5n, 63n, -1n],
+ [-4n, 63n, -1n],
+ [-3n, 63n, -1n],
+ [-2n, 63n, -1n],
+ [-1n, 63n, -1n],
+ [0n, 63n, 0n],
+ [1n, 63n, 0n],
+ [2n, 63n, 0n],
+ [3n, 63n, 0n],
+ [4n, 63n, 0n],
+ [5n, 63n, 0n],
+ [6n, 63n, 0n],
+ [7n, 63n, 0n],
+ [8n, 63n, 0n],
+ [9n, 63n, 0n],
+ [0x7ffffffen, 63n, 0n],
+ [0x7fffffffn, 63n, 0n],
+ [0x80000000n, 63n, 0n],
+ [0x80000001n, 63n, 0n],
+ [0xfffffffen, 63n, 0n],
+ [0xffffffffn, 63n, 0n],
+ [0x100000000n, 63n, 0n],
+ [0x100000001n, 63n, 0n],
+ [0x7ffffffffffffffen, 63n, 0n],
+ [0x7fffffffffffffffn, 63n, 0n],
+ [0x8000000000000000n, 63n, 1n],
+ [0x8000000000000001n, 63n, 1n],
+ [0xfffffffffffffffen, 63n, 1n],
+ [0xffffffffffffffffn, 63n, 1n],
+ [0x10000000000000000n, 63n, 2n],
+ [0x10000000000000001n, 63n, 2n],
+ [-0x10000000000000001n, 64n, -2n],
+ [-0x10000000000000000n, 64n, -1n],
+ [-0xffffffffffffffffn, 64n, -1n],
+ [-0xfffffffffffffffen, 64n, -1n],
+ [-0x8000000000000001n, 64n, -1n],
+ [-0x8000000000000000n, 64n, -1n],
+ [-0x7fffffffffffffffn, 64n, -1n],
+ [-0x7ffffffffffffffen, 64n, -1n],
+ [-0x100000001n, 64n, -1n],
+ [-0x100000000n, 64n, -1n],
+ [-0xffffffffn, 64n, -1n],
+ [-0xfffffffen, 64n, -1n],
+ [-0x80000001n, 64n, -1n],
+ [-0x80000000n, 64n, -1n],
+ [-0x7fffffffn, 64n, -1n],
+ [-0x7ffffffen, 64n, -1n],
+ [-9n, 64n, -1n],
+ [-8n, 64n, -1n],
+ [-7n, 64n, -1n],
+ [-6n, 64n, -1n],
+ [-5n, 64n, -1n],
+ [-4n, 64n, -1n],
+ [-3n, 64n, -1n],
+ [-2n, 64n, -1n],
+ [-1n, 64n, -1n],
+ [0n, 64n, 0n],
+ [1n, 64n, 0n],
+ [2n, 64n, 0n],
+ [3n, 64n, 0n],
+ [4n, 64n, 0n],
+ [5n, 64n, 0n],
+ [6n, 64n, 0n],
+ [7n, 64n, 0n],
+ [8n, 64n, 0n],
+ [9n, 64n, 0n],
+ [0x7ffffffen, 64n, 0n],
+ [0x7fffffffn, 64n, 0n],
+ [0x80000000n, 64n, 0n],
+ [0x80000001n, 64n, 0n],
+ [0xfffffffen, 64n, 0n],
+ [0xffffffffn, 64n, 0n],
+ [0x100000000n, 64n, 0n],
+ [0x100000001n, 64n, 0n],
+ [0x7ffffffffffffffen, 64n, 0n],
+ [0x7fffffffffffffffn, 64n, 0n],
+ [0x8000000000000000n, 64n, 0n],
+ [0x8000000000000001n, 64n, 0n],
+ [0xfffffffffffffffen, 64n, 0n],
+ [0xffffffffffffffffn, 64n, 0n],
+ [0x10000000000000000n, 64n, 1n],
+ [0x10000000000000001n, 64n, 1n],
+ [-0x10000000000000001n, -1n, -0x20000000000000002n],
+ [-0x10000000000000000n, -1n, -0x20000000000000000n],
+ [-0xffffffffffffffffn, -1n, -0x1fffffffffffffffen],
+ [-0xfffffffffffffffen, -1n, -0x1fffffffffffffffcn],
+ [-0x8000000000000001n, -1n, -0x10000000000000002n],
+ [-0x8000000000000000n, -1n, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, -1n, -0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, -1n, -0xfffffffffffffffcn],
+ [-0x100000001n, -1n, -0x200000002n],
+ [-0x100000000n, -1n, -0x200000000n],
+ [-0xffffffffn, -1n, -0x1fffffffen],
+ [-0xfffffffen, -1n, -0x1fffffffcn],
+ [-0x80000001n, -1n, -0x100000002n],
+ [-0x80000000n, -1n, -0x100000000n],
+ [-0x7fffffffn, -1n, -0xfffffffen],
+ [-0x7ffffffen, -1n, -0xfffffffcn],
+ [-9n, -1n, -18n],
+ [-8n, -1n, -16n],
+ [-7n, -1n, -14n],
+ [-6n, -1n, -12n],
+ [-5n, -1n, -10n],
+ [-4n, -1n, -8n],
+ [-3n, -1n, -6n],
+ [-2n, -1n, -4n],
+ [-1n, -1n, -2n],
+ [0n, -1n, 0n],
+ [1n, -1n, 2n],
+ [2n, -1n, 4n],
+ [3n, -1n, 6n],
+ [4n, -1n, 8n],
+ [5n, -1n, 10n],
+ [6n, -1n, 12n],
+ [7n, -1n, 14n],
+ [8n, -1n, 16n],
+ [9n, -1n, 18n],
+ [0x7ffffffen, -1n, 0xfffffffcn],
+ [0x7fffffffn, -1n, 0xfffffffen],
+ [0x80000000n, -1n, 0x100000000n],
+ [0x80000001n, -1n, 0x100000002n],
+ [0xfffffffen, -1n, 0x1fffffffcn],
+ [0xffffffffn, -1n, 0x1fffffffen],
+ [0x100000000n, -1n, 0x200000000n],
+ [0x100000001n, -1n, 0x200000002n],
+ [0x7ffffffffffffffen, -1n, 0xfffffffffffffffcn],
+ [0x7fffffffffffffffn, -1n, 0xfffffffffffffffen],
+ [0x8000000000000000n, -1n, 0x10000000000000000n],
+ [0x8000000000000001n, -1n, 0x10000000000000002n],
+ [0xfffffffffffffffen, -1n, 0x1fffffffffffffffcn],
+ [0xffffffffffffffffn, -1n, 0x1fffffffffffffffen],
+ [0x10000000000000000n, -1n, 0x20000000000000000n],
+ [0x10000000000000001n, -1n, 0x20000000000000002n],
+ [-0x10000000000000001n, -2n, -0x40000000000000004n],
+ [-0x10000000000000000n, -2n, -0x40000000000000000n],
+ [-0xffffffffffffffffn, -2n, -0x3fffffffffffffffcn],
+ [-0xfffffffffffffffen, -2n, -0x3fffffffffffffff8n],
+ [-0x8000000000000001n, -2n, -0x20000000000000004n],
+ [-0x8000000000000000n, -2n, -0x20000000000000000n],
+ [-0x7fffffffffffffffn, -2n, -0x1fffffffffffffffcn],
+ [-0x7ffffffffffffffen, -2n, -0x1fffffffffffffff8n],
+ [-0x100000001n, -2n, -0x400000004n],
+ [-0x100000000n, -2n, -0x400000000n],
+ [-0xffffffffn, -2n, -0x3fffffffcn],
+ [-0xfffffffen, -2n, -0x3fffffff8n],
+ [-0x80000001n, -2n, -0x200000004n],
+ [-0x80000000n, -2n, -0x200000000n],
+ [-0x7fffffffn, -2n, -0x1fffffffcn],
+ [-0x7ffffffen, -2n, -0x1fffffff8n],
+ [-9n, -2n, -36n],
+ [-8n, -2n, -32n],
+ [-7n, -2n, -28n],
+ [-6n, -2n, -24n],
+ [-5n, -2n, -20n],
+ [-4n, -2n, -16n],
+ [-3n, -2n, -12n],
+ [-2n, -2n, -8n],
+ [-1n, -2n, -4n],
+ [0n, -2n, 0n],
+ [1n, -2n, 4n],
+ [2n, -2n, 8n],
+ [3n, -2n, 12n],
+ [4n, -2n, 16n],
+ [5n, -2n, 20n],
+ [6n, -2n, 24n],
+ [7n, -2n, 28n],
+ [8n, -2n, 32n],
+ [9n, -2n, 36n],
+ [0x7ffffffen, -2n, 0x1fffffff8n],
+ [0x7fffffffn, -2n, 0x1fffffffcn],
+ [0x80000000n, -2n, 0x200000000n],
+ [0x80000001n, -2n, 0x200000004n],
+ [0xfffffffen, -2n, 0x3fffffff8n],
+ [0xffffffffn, -2n, 0x3fffffffcn],
+ [0x100000000n, -2n, 0x400000000n],
+ [0x100000001n, -2n, 0x400000004n],
+ [0x7ffffffffffffffen, -2n, 0x1fffffffffffffff8n],
+ [0x7fffffffffffffffn, -2n, 0x1fffffffffffffffcn],
+ [0x8000000000000000n, -2n, 0x20000000000000000n],
+ [0x8000000000000001n, -2n, 0x20000000000000004n],
+ [0xfffffffffffffffen, -2n, 0x3fffffffffffffff8n],
+ [0xffffffffffffffffn, -2n, 0x3fffffffffffffffcn],
+ [0x10000000000000000n, -2n, 0x40000000000000000n],
+ [0x10000000000000001n, -2n, 0x40000000000000004n],
+ [-0x10000000000000001n, -3n, -0x80000000000000008n],
+ [-0x10000000000000000n, -3n, -0x80000000000000000n],
+ [-0xffffffffffffffffn, -3n, -0x7fffffffffffffff8n],
+ [-0xfffffffffffffffen, -3n, -0x7fffffffffffffff0n],
+ [-0x8000000000000001n, -3n, -0x40000000000000008n],
+ [-0x8000000000000000n, -3n, -0x40000000000000000n],
+ [-0x7fffffffffffffffn, -3n, -0x3fffffffffffffff8n],
+ [-0x7ffffffffffffffen, -3n, -0x3fffffffffffffff0n],
+ [-0x100000001n, -3n, -0x800000008n],
+ [-0x100000000n, -3n, -0x800000000n],
+ [-0xffffffffn, -3n, -0x7fffffff8n],
+ [-0xfffffffen, -3n, -0x7fffffff0n],
+ [-0x80000001n, -3n, -0x400000008n],
+ [-0x80000000n, -3n, -0x400000000n],
+ [-0x7fffffffn, -3n, -0x3fffffff8n],
+ [-0x7ffffffen, -3n, -0x3fffffff0n],
+ [-9n, -3n, -72n],
+ [-8n, -3n, -64n],
+ [-7n, -3n, -56n],
+ [-6n, -3n, -48n],
+ [-5n, -3n, -40n],
+ [-4n, -3n, -32n],
+ [-3n, -3n, -24n],
+ [-2n, -3n, -16n],
+ [-1n, -3n, -8n],
+ [0n, -3n, 0n],
+ [1n, -3n, 8n],
+ [2n, -3n, 16n],
+ [3n, -3n, 24n],
+ [4n, -3n, 32n],
+ [5n, -3n, 40n],
+ [6n, -3n, 48n],
+ [7n, -3n, 56n],
+ [8n, -3n, 64n],
+ [9n, -3n, 72n],
+ [0x7ffffffen, -3n, 0x3fffffff0n],
+ [0x7fffffffn, -3n, 0x3fffffff8n],
+ [0x80000000n, -3n, 0x400000000n],
+ [0x80000001n, -3n, 0x400000008n],
+ [0xfffffffen, -3n, 0x7fffffff0n],
+ [0xffffffffn, -3n, 0x7fffffff8n],
+ [0x100000000n, -3n, 0x800000000n],
+ [0x100000001n, -3n, 0x800000008n],
+ [0x7ffffffffffffffen, -3n, 0x3fffffffffffffff0n],
+ [0x7fffffffffffffffn, -3n, 0x3fffffffffffffff8n],
+ [0x8000000000000000n, -3n, 0x40000000000000000n],
+ [0x8000000000000001n, -3n, 0x40000000000000008n],
+ [0xfffffffffffffffen, -3n, 0x7fffffffffffffff0n],
+ [0xffffffffffffffffn, -3n, 0x7fffffffffffffff8n],
+ [0x10000000000000000n, -3n, 0x80000000000000000n],
+ [0x10000000000000001n, -3n, 0x80000000000000008n],
+ [-0x10000000000000001n, -4n, -0x100000000000000010n],
+ [-0x10000000000000000n, -4n, -0x100000000000000000n],
+ [-0xffffffffffffffffn, -4n, -0xffffffffffffffff0n],
+ [-0xfffffffffffffffen, -4n, -0xfffffffffffffffe0n],
+ [-0x8000000000000001n, -4n, -0x80000000000000010n],
+ [-0x8000000000000000n, -4n, -0x80000000000000000n],
+ [-0x7fffffffffffffffn, -4n, -0x7fffffffffffffff0n],
+ [-0x7ffffffffffffffen, -4n, -0x7ffffffffffffffe0n],
+ [-0x100000001n, -4n, -0x1000000010n],
+ [-0x100000000n, -4n, -0x1000000000n],
+ [-0xffffffffn, -4n, -0xffffffff0n],
+ [-0xfffffffen, -4n, -0xfffffffe0n],
+ [-0x80000001n, -4n, -0x800000010n],
+ [-0x80000000n, -4n, -0x800000000n],
+ [-0x7fffffffn, -4n, -0x7fffffff0n],
+ [-0x7ffffffen, -4n, -0x7ffffffe0n],
+ [-9n, -4n, -144n],
+ [-8n, -4n, -128n],
+ [-7n, -4n, -112n],
+ [-6n, -4n, -96n],
+ [-5n, -4n, -80n],
+ [-4n, -4n, -64n],
+ [-3n, -4n, -48n],
+ [-2n, -4n, -32n],
+ [-1n, -4n, -16n],
+ [0n, -4n, 0n],
+ [1n, -4n, 16n],
+ [2n, -4n, 32n],
+ [3n, -4n, 48n],
+ [4n, -4n, 64n],
+ [5n, -4n, 80n],
+ [6n, -4n, 96n],
+ [7n, -4n, 112n],
+ [8n, -4n, 128n],
+ [9n, -4n, 144n],
+ [0x7ffffffen, -4n, 0x7ffffffe0n],
+ [0x7fffffffn, -4n, 0x7fffffff0n],
+ [0x80000000n, -4n, 0x800000000n],
+ [0x80000001n, -4n, 0x800000010n],
+ [0xfffffffen, -4n, 0xfffffffe0n],
+ [0xffffffffn, -4n, 0xffffffff0n],
+ [0x100000000n, -4n, 0x1000000000n],
+ [0x100000001n, -4n, 0x1000000010n],
+ [0x7ffffffffffffffen, -4n, 0x7ffffffffffffffe0n],
+ [0x7fffffffffffffffn, -4n, 0x7fffffffffffffff0n],
+ [0x8000000000000000n, -4n, 0x80000000000000000n],
+ [0x8000000000000001n, -4n, 0x80000000000000010n],
+ [0xfffffffffffffffen, -4n, 0xfffffffffffffffe0n],
+ [0xffffffffffffffffn, -4n, 0xffffffffffffffff0n],
+ [0x10000000000000000n, -4n, 0x100000000000000000n],
+ [0x10000000000000001n, -4n, 0x100000000000000010n],
+ [-0x10000000000000001n, -31n, -0x800000000000000080000000n],
+ [-0x10000000000000000n, -31n, -0x800000000000000000000000n],
+ [-0xffffffffffffffffn, -31n, -0x7fffffffffffffff80000000n],
+ [-0xfffffffffffffffen, -31n, -0x7fffffffffffffff00000000n],
+ [-0x8000000000000001n, -31n, -0x400000000000000080000000n],
+ [-0x8000000000000000n, -31n, -0x400000000000000000000000n],
+ [-0x7fffffffffffffffn, -31n, -0x3fffffffffffffff80000000n],
+ [-0x7ffffffffffffffen, -31n, -0x3fffffffffffffff00000000n],
+ [-0x100000001n, -31n, -0x8000000080000000n],
+ [-0x100000000n, -31n, -0x8000000000000000n],
+ [-0xffffffffn, -31n, -0x7fffffff80000000n],
+ [-0xfffffffen, -31n, -0x7fffffff00000000n],
+ [-0x80000001n, -31n, -0x4000000080000000n],
+ [-0x80000000n, -31n, -0x4000000000000000n],
+ [-0x7fffffffn, -31n, -0x3fffffff80000000n],
+ [-0x7ffffffen, -31n, -0x3fffffff00000000n],
+ [-9n, -31n, -0x480000000n],
+ [-8n, -31n, -0x400000000n],
+ [-7n, -31n, -0x380000000n],
+ [-6n, -31n, -0x300000000n],
+ [-5n, -31n, -0x280000000n],
+ [-4n, -31n, -0x200000000n],
+ [-3n, -31n, -0x180000000n],
+ [-2n, -31n, -0x100000000n],
+ [-1n, -31n, -0x80000000n],
+ [0n, -31n, 0n],
+ [1n, -31n, 0x80000000n],
+ [2n, -31n, 0x100000000n],
+ [3n, -31n, 0x180000000n],
+ [4n, -31n, 0x200000000n],
+ [5n, -31n, 0x280000000n],
+ [6n, -31n, 0x300000000n],
+ [7n, -31n, 0x380000000n],
+ [8n, -31n, 0x400000000n],
+ [9n, -31n, 0x480000000n],
+ [0x7ffffffen, -31n, 0x3fffffff00000000n],
+ [0x7fffffffn, -31n, 0x3fffffff80000000n],
+ [0x80000000n, -31n, 0x4000000000000000n],
+ [0x80000001n, -31n, 0x4000000080000000n],
+ [0xfffffffen, -31n, 0x7fffffff00000000n],
+ [0xffffffffn, -31n, 0x7fffffff80000000n],
+ [0x100000000n, -31n, 0x8000000000000000n],
+ [0x100000001n, -31n, 0x8000000080000000n],
+ [0x7ffffffffffffffen, -31n, 0x3fffffffffffffff00000000n],
+ [0x7fffffffffffffffn, -31n, 0x3fffffffffffffff80000000n],
+ [0x8000000000000000n, -31n, 0x400000000000000000000000n],
+ [0x8000000000000001n, -31n, 0x400000000000000080000000n],
+ [0xfffffffffffffffen, -31n, 0x7fffffffffffffff00000000n],
+ [0xffffffffffffffffn, -31n, 0x7fffffffffffffff80000000n],
+ [0x10000000000000000n, -31n, 0x800000000000000000000000n],
+ [0x10000000000000001n, -31n, 0x800000000000000080000000n],
+ [-0x10000000000000001n, -32n, -0x1000000000000000100000000n],
+ [-0x10000000000000000n, -32n, -0x1000000000000000000000000n],
+ [-0xffffffffffffffffn, -32n, -0xffffffffffffffff00000000n],
+ [-0xfffffffffffffffen, -32n, -0xfffffffffffffffe00000000n],
+ [-0x8000000000000001n, -32n, -0x800000000000000100000000n],
+ [-0x8000000000000000n, -32n, -0x800000000000000000000000n],
+ [-0x7fffffffffffffffn, -32n, -0x7fffffffffffffff00000000n],
+ [-0x7ffffffffffffffen, -32n, -0x7ffffffffffffffe00000000n],
+ [-0x100000001n, -32n, -0x10000000100000000n],
+ [-0x100000000n, -32n, -0x10000000000000000n],
+ [-0xffffffffn, -32n, -0xffffffff00000000n],
+ [-0xfffffffen, -32n, -0xfffffffe00000000n],
+ [-0x80000001n, -32n, -0x8000000100000000n],
+ [-0x80000000n, -32n, -0x8000000000000000n],
+ [-0x7fffffffn, -32n, -0x7fffffff00000000n],
+ [-0x7ffffffen, -32n, -0x7ffffffe00000000n],
+ [-9n, -32n, -0x900000000n],
+ [-8n, -32n, -0x800000000n],
+ [-7n, -32n, -0x700000000n],
+ [-6n, -32n, -0x600000000n],
+ [-5n, -32n, -0x500000000n],
+ [-4n, -32n, -0x400000000n],
+ [-3n, -32n, -0x300000000n],
+ [-2n, -32n, -0x200000000n],
+ [-1n, -32n, -0x100000000n],
+ [0n, -32n, 0n],
+ [1n, -32n, 0x100000000n],
+ [2n, -32n, 0x200000000n],
+ [3n, -32n, 0x300000000n],
+ [4n, -32n, 0x400000000n],
+ [5n, -32n, 0x500000000n],
+ [6n, -32n, 0x600000000n],
+ [7n, -32n, 0x700000000n],
+ [8n, -32n, 0x800000000n],
+ [9n, -32n, 0x900000000n],
+ [0x7ffffffen, -32n, 0x7ffffffe00000000n],
+ [0x7fffffffn, -32n, 0x7fffffff00000000n],
+ [0x80000000n, -32n, 0x8000000000000000n],
+ [0x80000001n, -32n, 0x8000000100000000n],
+ [0xfffffffen, -32n, 0xfffffffe00000000n],
+ [0xffffffffn, -32n, 0xffffffff00000000n],
+ [0x100000000n, -32n, 0x10000000000000000n],
+ [0x100000001n, -32n, 0x10000000100000000n],
+ [0x7ffffffffffffffen, -32n, 0x7ffffffffffffffe00000000n],
+ [0x7fffffffffffffffn, -32n, 0x7fffffffffffffff00000000n],
+ [0x8000000000000000n, -32n, 0x800000000000000000000000n],
+ [0x8000000000000001n, -32n, 0x800000000000000100000000n],
+ [0xfffffffffffffffen, -32n, 0xfffffffffffffffe00000000n],
+ [0xffffffffffffffffn, -32n, 0xffffffffffffffff00000000n],
+ [0x10000000000000000n, -32n, 0x1000000000000000000000000n],
+ [0x10000000000000001n, -32n, 0x1000000000000000100000000n],
+ [-0x10000000000000001n, -63n, -0x80000000000000008000000000000000n],
+ [-0x10000000000000000n, -63n, -0x80000000000000000000000000000000n],
+ [-0xffffffffffffffffn, -63n, -0x7fffffffffffffff8000000000000000n],
+ [-0xfffffffffffffffen, -63n, -0x7fffffffffffffff0000000000000000n],
+ [-0x8000000000000001n, -63n, -0x40000000000000008000000000000000n],
+ [-0x8000000000000000n, -63n, -0x40000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, -63n, -0x3fffffffffffffff8000000000000000n],
+ [-0x7ffffffffffffffen, -63n, -0x3fffffffffffffff0000000000000000n],
+ [-0x100000001n, -63n, -0x800000008000000000000000n],
+ [-0x100000000n, -63n, -0x800000000000000000000000n],
+ [-0xffffffffn, -63n, -0x7fffffff8000000000000000n],
+ [-0xfffffffen, -63n, -0x7fffffff0000000000000000n],
+ [-0x80000001n, -63n, -0x400000008000000000000000n],
+ [-0x80000000n, -63n, -0x400000000000000000000000n],
+ [-0x7fffffffn, -63n, -0x3fffffff8000000000000000n],
+ [-0x7ffffffen, -63n, -0x3fffffff0000000000000000n],
+ [-9n, -63n, -0x48000000000000000n],
+ [-8n, -63n, -0x40000000000000000n],
+ [-7n, -63n, -0x38000000000000000n],
+ [-6n, -63n, -0x30000000000000000n],
+ [-5n, -63n, -0x28000000000000000n],
+ [-4n, -63n, -0x20000000000000000n],
+ [-3n, -63n, -0x18000000000000000n],
+ [-2n, -63n, -0x10000000000000000n],
+ [-1n, -63n, -0x8000000000000000n],
+ [0n, -63n, 0n],
+ [1n, -63n, 0x8000000000000000n],
+ [2n, -63n, 0x10000000000000000n],
+ [3n, -63n, 0x18000000000000000n],
+ [4n, -63n, 0x20000000000000000n],
+ [5n, -63n, 0x28000000000000000n],
+ [6n, -63n, 0x30000000000000000n],
+ [7n, -63n, 0x38000000000000000n],
+ [8n, -63n, 0x40000000000000000n],
+ [9n, -63n, 0x48000000000000000n],
+ [0x7ffffffen, -63n, 0x3fffffff0000000000000000n],
+ [0x7fffffffn, -63n, 0x3fffffff8000000000000000n],
+ [0x80000000n, -63n, 0x400000000000000000000000n],
+ [0x80000001n, -63n, 0x400000008000000000000000n],
+ [0xfffffffen, -63n, 0x7fffffff0000000000000000n],
+ [0xffffffffn, -63n, 0x7fffffff8000000000000000n],
+ [0x100000000n, -63n, 0x800000000000000000000000n],
+ [0x100000001n, -63n, 0x800000008000000000000000n],
+ [0x7ffffffffffffffen, -63n, 0x3fffffffffffffff0000000000000000n],
+ [0x7fffffffffffffffn, -63n, 0x3fffffffffffffff8000000000000000n],
+ [0x8000000000000000n, -63n, 0x40000000000000000000000000000000n],
+ [0x8000000000000001n, -63n, 0x40000000000000008000000000000000n],
+ [0xfffffffffffffffen, -63n, 0x7fffffffffffffff0000000000000000n],
+ [0xffffffffffffffffn, -63n, 0x7fffffffffffffff8000000000000000n],
+ [0x10000000000000000n, -63n, 0x80000000000000000000000000000000n],
+ [0x10000000000000001n, -63n, 0x80000000000000008000000000000000n],
+ [-0x10000000000000001n, -64n, -0x100000000000000010000000000000000n],
+ [-0x10000000000000000n, -64n, -0x100000000000000000000000000000000n],
+ [-0xffffffffffffffffn, -64n, -0xffffffffffffffff0000000000000000n],
+ [-0xfffffffffffffffen, -64n, -0xfffffffffffffffe0000000000000000n],
+ [-0x8000000000000001n, -64n, -0x80000000000000010000000000000000n],
+ [-0x8000000000000000n, -64n, -0x80000000000000000000000000000000n],
+ [-0x7fffffffffffffffn, -64n, -0x7fffffffffffffff0000000000000000n],
+ [-0x7ffffffffffffffen, -64n, -0x7ffffffffffffffe0000000000000000n],
+ [-0x100000001n, -64n, -0x1000000010000000000000000n],
+ [-0x100000000n, -64n, -0x1000000000000000000000000n],
+ [-0xffffffffn, -64n, -0xffffffff0000000000000000n],
+ [-0xfffffffen, -64n, -0xfffffffe0000000000000000n],
+ [-0x80000001n, -64n, -0x800000010000000000000000n],
+ [-0x80000000n, -64n, -0x800000000000000000000000n],
+ [-0x7fffffffn, -64n, -0x7fffffff0000000000000000n],
+ [-0x7ffffffen, -64n, -0x7ffffffe0000000000000000n],
+ [-9n, -64n, -0x90000000000000000n],
+ [-8n, -64n, -0x80000000000000000n],
+ [-7n, -64n, -0x70000000000000000n],
+ [-6n, -64n, -0x60000000000000000n],
+ [-5n, -64n, -0x50000000000000000n],
+ [-4n, -64n, -0x40000000000000000n],
+ [-3n, -64n, -0x30000000000000000n],
+ [-2n, -64n, -0x20000000000000000n],
+ [-1n, -64n, -0x10000000000000000n],
+ [0n, -64n, 0n],
+ [1n, -64n, 0x10000000000000000n],
+ [2n, -64n, 0x20000000000000000n],
+ [3n, -64n, 0x30000000000000000n],
+ [4n, -64n, 0x40000000000000000n],
+ [5n, -64n, 0x50000000000000000n],
+ [6n, -64n, 0x60000000000000000n],
+ [7n, -64n, 0x70000000000000000n],
+ [8n, -64n, 0x80000000000000000n],
+ [9n, -64n, 0x90000000000000000n],
+ [0x7ffffffen, -64n, 0x7ffffffe0000000000000000n],
+ [0x7fffffffn, -64n, 0x7fffffff0000000000000000n],
+ [0x80000000n, -64n, 0x800000000000000000000000n],
+ [0x80000001n, -64n, 0x800000010000000000000000n],
+ [0xfffffffen, -64n, 0xfffffffe0000000000000000n],
+ [0xffffffffn, -64n, 0xffffffff0000000000000000n],
+ [0x100000000n, -64n, 0x1000000000000000000000000n],
+ [0x100000001n, -64n, 0x1000000010000000000000000n],
+ [0x7ffffffffffffffen, -64n, 0x7ffffffffffffffe0000000000000000n],
+ [0x7fffffffffffffffn, -64n, 0x7fffffffffffffff0000000000000000n],
+ [0x8000000000000000n, -64n, 0x80000000000000000000000000000000n],
+ [0x8000000000000001n, -64n, 0x80000000000000010000000000000000n],
+ [0xfffffffffffffffen, -64n, 0xfffffffffffffffe0000000000000000n],
+ [0xffffffffffffffffn, -64n, 0xffffffffffffffff0000000000000000n],
+ [0x10000000000000000n, -64n, 0x100000000000000000000000000000000n],
+ [0x10000000000000001n, -64n, 0x100000000000000010000000000000000n],
+];
+
+// Cases not covered above.
+tests.push(
+ // Positive shift with sign-bit set when interpreted as pointer-sized value (32-bit).
+ [-1n, 0xf000_0000n, -1n],
+ [0n, 0xf000_0000n, 0n],
+ [1n, 0xf000_0000n, 0n],
+
+ // Positive shift with sign-bit set when interpreted as pointer-sized value (64-bit).
+ [-1n, 0xf000_0000_0000_0000n, -1n],
+ [0n, 0xf000_0000_0000_0000n, 0n],
+ [1n, 0xf000_0000_0000_0000n, 0n],
+);
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs >> rhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-sub.js b/js/src/jit-test/tests/bigint/bigint-sub.js
new file mode 100644
index 0000000000..8608177ab2
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-sub.js
@@ -0,0 +1,1383 @@
+const tests = [
+ [-0x10000000000000001n, -2n, -0xffffffffffffffffn],
+ [-0x10000000000000000n, -2n, -0xfffffffffffffffen],
+ [-0xffffffffffffffffn, -2n, -0xfffffffffffffffdn],
+ [-0xfffffffffffffffen, -2n, -0xfffffffffffffffcn],
+ [-0x8000000000000001n, -2n, -0x7fffffffffffffffn],
+ [-0x8000000000000000n, -2n, -0x7ffffffffffffffen],
+ [-0x7fffffffffffffffn, -2n, -0x7ffffffffffffffdn],
+ [-0x7ffffffffffffffen, -2n, -0x7ffffffffffffffcn],
+ [-0x100000001n, -2n, -0xffffffffn],
+ [-0x100000000n, -2n, -0xfffffffen],
+ [-0xffffffffn, -2n, -0xfffffffdn],
+ [-0xfffffffen, -2n, -0xfffffffcn],
+ [-0x80000001n, -2n, -0x7fffffffn],
+ [-0x80000000n, -2n, -0x7ffffffen],
+ [-0x7fffffffn, -2n, -0x7ffffffdn],
+ [-0x7ffffffen, -2n, -0x7ffffffcn],
+ [-2n, -2n, 0n],
+ [-1n, -2n, 1n],
+ [0n, -2n, 2n],
+ [1n, -2n, 3n],
+ [2n, -2n, 4n],
+ [0x7ffffffen, -2n, 0x80000000n],
+ [0x7fffffffn, -2n, 0x80000001n],
+ [0x80000000n, -2n, 0x80000002n],
+ [0x80000001n, -2n, 0x80000003n],
+ [0xfffffffen, -2n, 0x100000000n],
+ [0xffffffffn, -2n, 0x100000001n],
+ [0x100000000n, -2n, 0x100000002n],
+ [0x100000001n, -2n, 0x100000003n],
+ [0x7ffffffffffffffen, -2n, 0x8000000000000000n],
+ [0x7fffffffffffffffn, -2n, 0x8000000000000001n],
+ [0x8000000000000000n, -2n, 0x8000000000000002n],
+ [0x8000000000000001n, -2n, 0x8000000000000003n],
+ [0xfffffffffffffffen, -2n, 0x10000000000000000n],
+ [0xffffffffffffffffn, -2n, 0x10000000000000001n],
+ [0x10000000000000000n, -2n, 0x10000000000000002n],
+ [0x10000000000000001n, -2n, 0x10000000000000003n],
+ [-0x10000000000000001n, -1n, -0x10000000000000000n],
+ [-0x10000000000000000n, -1n, -0xffffffffffffffffn],
+ [-0xffffffffffffffffn, -1n, -0xfffffffffffffffen],
+ [-0xfffffffffffffffen, -1n, -0xfffffffffffffffdn],
+ [-0x8000000000000001n, -1n, -0x8000000000000000n],
+ [-0x8000000000000000n, -1n, -0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, -1n, -0x7ffffffffffffffen],
+ [-0x7ffffffffffffffen, -1n, -0x7ffffffffffffffdn],
+ [-0x100000001n, -1n, -0x100000000n],
+ [-0x100000000n, -1n, -0xffffffffn],
+ [-0xffffffffn, -1n, -0xfffffffen],
+ [-0xfffffffen, -1n, -0xfffffffdn],
+ [-0x80000001n, -1n, -0x80000000n],
+ [-0x80000000n, -1n, -0x7fffffffn],
+ [-0x7fffffffn, -1n, -0x7ffffffen],
+ [-0x7ffffffen, -1n, -0x7ffffffdn],
+ [-2n, -1n, -1n],
+ [-1n, -1n, 0n],
+ [0n, -1n, 1n],
+ [1n, -1n, 2n],
+ [2n, -1n, 3n],
+ [0x7ffffffen, -1n, 0x7fffffffn],
+ [0x7fffffffn, -1n, 0x80000000n],
+ [0x80000000n, -1n, 0x80000001n],
+ [0x80000001n, -1n, 0x80000002n],
+ [0xfffffffen, -1n, 0xffffffffn],
+ [0xffffffffn, -1n, 0x100000000n],
+ [0x100000000n, -1n, 0x100000001n],
+ [0x100000001n, -1n, 0x100000002n],
+ [0x7ffffffffffffffen, -1n, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, -1n, 0x8000000000000000n],
+ [0x8000000000000000n, -1n, 0x8000000000000001n],
+ [0x8000000000000001n, -1n, 0x8000000000000002n],
+ [0xfffffffffffffffen, -1n, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, -1n, 0x10000000000000000n],
+ [0x10000000000000000n, -1n, 0x10000000000000001n],
+ [0x10000000000000001n, -1n, 0x10000000000000002n],
+ [-0x10000000000000001n, 0n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0n, -0x100000001n],
+ [-0x100000000n, 0n, -0x100000000n],
+ [-0xffffffffn, 0n, -0xffffffffn],
+ [-0xfffffffen, 0n, -0xfffffffen],
+ [-0x80000001n, 0n, -0x80000001n],
+ [-0x80000000n, 0n, -0x80000000n],
+ [-0x7fffffffn, 0n, -0x7fffffffn],
+ [-0x7ffffffen, 0n, -0x7ffffffen],
+ [-2n, 0n, -2n],
+ [-1n, 0n, -1n],
+ [0n, 0n, 0n],
+ [1n, 0n, 1n],
+ [2n, 0n, 2n],
+ [0x7ffffffen, 0n, 0x7ffffffen],
+ [0x7fffffffn, 0n, 0x7fffffffn],
+ [0x80000000n, 0n, 0x80000000n],
+ [0x80000001n, 0n, 0x80000001n],
+ [0xfffffffen, 0n, 0xfffffffen],
+ [0xffffffffn, 0n, 0xffffffffn],
+ [0x100000000n, 0n, 0x100000000n],
+ [0x100000001n, 0n, 0x100000001n],
+ [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0n, 0x8000000000000000n],
+ [0x8000000000000001n, 0n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0n, 0x10000000000000000n],
+ [0x10000000000000001n, 0n, 0x10000000000000001n],
+ [-0x10000000000000001n, 1n, -0x10000000000000002n],
+ [-0x10000000000000000n, 1n, -0x10000000000000001n],
+ [-0xffffffffffffffffn, 1n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, 1n, -0xffffffffffffffffn],
+ [-0x8000000000000001n, 1n, -0x8000000000000002n],
+ [-0x8000000000000000n, 1n, -0x8000000000000001n],
+ [-0x7fffffffffffffffn, 1n, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, 1n, -0x7fffffffffffffffn],
+ [-0x100000001n, 1n, -0x100000002n],
+ [-0x100000000n, 1n, -0x100000001n],
+ [-0xffffffffn, 1n, -0x100000000n],
+ [-0xfffffffen, 1n, -0xffffffffn],
+ [-0x80000001n, 1n, -0x80000002n],
+ [-0x80000000n, 1n, -0x80000001n],
+ [-0x7fffffffn, 1n, -0x80000000n],
+ [-0x7ffffffen, 1n, -0x7fffffffn],
+ [-2n, 1n, -3n],
+ [-1n, 1n, -2n],
+ [0n, 1n, -1n],
+ [1n, 1n, 0n],
+ [2n, 1n, 1n],
+ [0x7ffffffen, 1n, 0x7ffffffdn],
+ [0x7fffffffn, 1n, 0x7ffffffen],
+ [0x80000000n, 1n, 0x7fffffffn],
+ [0x80000001n, 1n, 0x80000000n],
+ [0xfffffffen, 1n, 0xfffffffdn],
+ [0xffffffffn, 1n, 0xfffffffen],
+ [0x100000000n, 1n, 0xffffffffn],
+ [0x100000001n, 1n, 0x100000000n],
+ [0x7ffffffffffffffen, 1n, 0x7ffffffffffffffdn],
+ [0x7fffffffffffffffn, 1n, 0x7ffffffffffffffen],
+ [0x8000000000000000n, 1n, 0x7fffffffffffffffn],
+ [0x8000000000000001n, 1n, 0x8000000000000000n],
+ [0xfffffffffffffffen, 1n, 0xfffffffffffffffdn],
+ [0xffffffffffffffffn, 1n, 0xfffffffffffffffen],
+ [0x10000000000000000n, 1n, 0xffffffffffffffffn],
+ [0x10000000000000001n, 1n, 0x10000000000000000n],
+ [-0x10000000000000001n, 2n, -0x10000000000000003n],
+ [-0x10000000000000000n, 2n, -0x10000000000000002n],
+ [-0xffffffffffffffffn, 2n, -0x10000000000000001n],
+ [-0xfffffffffffffffen, 2n, -0x10000000000000000n],
+ [-0x8000000000000001n, 2n, -0x8000000000000003n],
+ [-0x8000000000000000n, 2n, -0x8000000000000002n],
+ [-0x7fffffffffffffffn, 2n, -0x8000000000000001n],
+ [-0x7ffffffffffffffen, 2n, -0x8000000000000000n],
+ [-0x100000001n, 2n, -0x100000003n],
+ [-0x100000000n, 2n, -0x100000002n],
+ [-0xffffffffn, 2n, -0x100000001n],
+ [-0xfffffffen, 2n, -0x100000000n],
+ [-0x80000001n, 2n, -0x80000003n],
+ [-0x80000000n, 2n, -0x80000002n],
+ [-0x7fffffffn, 2n, -0x80000001n],
+ [-0x7ffffffen, 2n, -0x80000000n],
+ [-2n, 2n, -4n],
+ [-1n, 2n, -3n],
+ [0n, 2n, -2n],
+ [1n, 2n, -1n],
+ [2n, 2n, 0n],
+ [0x7ffffffen, 2n, 0x7ffffffcn],
+ [0x7fffffffn, 2n, 0x7ffffffdn],
+ [0x80000000n, 2n, 0x7ffffffen],
+ [0x80000001n, 2n, 0x7fffffffn],
+ [0xfffffffen, 2n, 0xfffffffcn],
+ [0xffffffffn, 2n, 0xfffffffdn],
+ [0x100000000n, 2n, 0xfffffffen],
+ [0x100000001n, 2n, 0xffffffffn],
+ [0x7ffffffffffffffen, 2n, 0x7ffffffffffffffcn],
+ [0x7fffffffffffffffn, 2n, 0x7ffffffffffffffdn],
+ [0x8000000000000000n, 2n, 0x7ffffffffffffffen],
+ [0x8000000000000001n, 2n, 0x7fffffffffffffffn],
+ [0xfffffffffffffffen, 2n, 0xfffffffffffffffcn],
+ [0xffffffffffffffffn, 2n, 0xfffffffffffffffdn],
+ [0x10000000000000000n, 2n, 0xfffffffffffffffen],
+ [0x10000000000000001n, 2n, 0xffffffffffffffffn],
+ [-0x10000000000000001n, 0x7ffffffen, -0x1000000007fffffffn],
+ [-0x10000000000000000n, 0x7ffffffen, -0x1000000007ffffffen],
+ [-0xffffffffffffffffn, 0x7ffffffen, -0x1000000007ffffffdn],
+ [-0xfffffffffffffffen, 0x7ffffffen, -0x1000000007ffffffcn],
+ [-0x8000000000000001n, 0x7ffffffen, -0x800000007fffffffn],
+ [-0x8000000000000000n, 0x7ffffffen, -0x800000007ffffffen],
+ [-0x7fffffffffffffffn, 0x7ffffffen, -0x800000007ffffffdn],
+ [-0x7ffffffffffffffen, 0x7ffffffen, -0x800000007ffffffcn],
+ [-0x100000001n, 0x7ffffffen, -0x17fffffffn],
+ [-0x100000000n, 0x7ffffffen, -0x17ffffffen],
+ [-0xffffffffn, 0x7ffffffen, -0x17ffffffdn],
+ [-0xfffffffen, 0x7ffffffen, -0x17ffffffcn],
+ [-0x80000001n, 0x7ffffffen, -0xffffffffn],
+ [-0x80000000n, 0x7ffffffen, -0xfffffffen],
+ [-0x7fffffffn, 0x7ffffffen, -0xfffffffdn],
+ [-0x7ffffffen, 0x7ffffffen, -0xfffffffcn],
+ [-2n, 0x7ffffffen, -0x80000000n],
+ [-1n, 0x7ffffffen, -0x7fffffffn],
+ [0n, 0x7ffffffen, -0x7ffffffen],
+ [1n, 0x7ffffffen, -0x7ffffffdn],
+ [2n, 0x7ffffffen, -0x7ffffffcn],
+ [0x7ffffffen, 0x7ffffffen, 0n],
+ [0x7fffffffn, 0x7ffffffen, 1n],
+ [0x80000000n, 0x7ffffffen, 2n],
+ [0x80000001n, 0x7ffffffen, 3n],
+ [0xfffffffen, 0x7ffffffen, 0x80000000n],
+ [0xffffffffn, 0x7ffffffen, 0x80000001n],
+ [0x100000000n, 0x7ffffffen, 0x80000002n],
+ [0x100000001n, 0x7ffffffen, 0x80000003n],
+ [0x7ffffffffffffffen, 0x7ffffffen, 0x7fffffff80000000n],
+ [0x7fffffffffffffffn, 0x7ffffffen, 0x7fffffff80000001n],
+ [0x8000000000000000n, 0x7ffffffen, 0x7fffffff80000002n],
+ [0x8000000000000001n, 0x7ffffffen, 0x7fffffff80000003n],
+ [0xfffffffffffffffen, 0x7ffffffen, 0xffffffff80000000n],
+ [0xffffffffffffffffn, 0x7ffffffen, 0xffffffff80000001n],
+ [0x10000000000000000n, 0x7ffffffen, 0xffffffff80000002n],
+ [0x10000000000000001n, 0x7ffffffen, 0xffffffff80000003n],
+ [-0x10000000000000001n, 0x7fffffffn, -0x10000000080000000n],
+ [-0x10000000000000000n, 0x7fffffffn, -0x1000000007fffffffn],
+ [-0xffffffffffffffffn, 0x7fffffffn, -0x1000000007ffffffen],
+ [-0xfffffffffffffffen, 0x7fffffffn, -0x1000000007ffffffdn],
+ [-0x8000000000000001n, 0x7fffffffn, -0x8000000080000000n],
+ [-0x8000000000000000n, 0x7fffffffn, -0x800000007fffffffn],
+ [-0x7fffffffffffffffn, 0x7fffffffn, -0x800000007ffffffen],
+ [-0x7ffffffffffffffen, 0x7fffffffn, -0x800000007ffffffdn],
+ [-0x100000001n, 0x7fffffffn, -0x180000000n],
+ [-0x100000000n, 0x7fffffffn, -0x17fffffffn],
+ [-0xffffffffn, 0x7fffffffn, -0x17ffffffen],
+ [-0xfffffffen, 0x7fffffffn, -0x17ffffffdn],
+ [-0x80000001n, 0x7fffffffn, -0x100000000n],
+ [-0x80000000n, 0x7fffffffn, -0xffffffffn],
+ [-0x7fffffffn, 0x7fffffffn, -0xfffffffen],
+ [-0x7ffffffen, 0x7fffffffn, -0xfffffffdn],
+ [-2n, 0x7fffffffn, -0x80000001n],
+ [-1n, 0x7fffffffn, -0x80000000n],
+ [0n, 0x7fffffffn, -0x7fffffffn],
+ [1n, 0x7fffffffn, -0x7ffffffen],
+ [2n, 0x7fffffffn, -0x7ffffffdn],
+ [0x7ffffffen, 0x7fffffffn, -1n],
+ [0x7fffffffn, 0x7fffffffn, 0n],
+ [0x80000000n, 0x7fffffffn, 1n],
+ [0x80000001n, 0x7fffffffn, 2n],
+ [0xfffffffen, 0x7fffffffn, 0x7fffffffn],
+ [0xffffffffn, 0x7fffffffn, 0x80000000n],
+ [0x100000000n, 0x7fffffffn, 0x80000001n],
+ [0x100000001n, 0x7fffffffn, 0x80000002n],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0x7fffffff7fffffffn],
+ [0x7fffffffffffffffn, 0x7fffffffn, 0x7fffffff80000000n],
+ [0x8000000000000000n, 0x7fffffffn, 0x7fffffff80000001n],
+ [0x8000000000000001n, 0x7fffffffn, 0x7fffffff80000002n],
+ [0xfffffffffffffffen, 0x7fffffffn, 0xffffffff7fffffffn],
+ [0xffffffffffffffffn, 0x7fffffffn, 0xffffffff80000000n],
+ [0x10000000000000000n, 0x7fffffffn, 0xffffffff80000001n],
+ [0x10000000000000001n, 0x7fffffffn, 0xffffffff80000002n],
+ [-0x10000000000000001n, 0x80000000n, -0x10000000080000001n],
+ [-0x10000000000000000n, 0x80000000n, -0x10000000080000000n],
+ [-0xffffffffffffffffn, 0x80000000n, -0x1000000007fffffffn],
+ [-0xfffffffffffffffen, 0x80000000n, -0x1000000007ffffffen],
+ [-0x8000000000000001n, 0x80000000n, -0x8000000080000001n],
+ [-0x8000000000000000n, 0x80000000n, -0x8000000080000000n],
+ [-0x7fffffffffffffffn, 0x80000000n, -0x800000007fffffffn],
+ [-0x7ffffffffffffffen, 0x80000000n, -0x800000007ffffffen],
+ [-0x100000001n, 0x80000000n, -0x180000001n],
+ [-0x100000000n, 0x80000000n, -0x180000000n],
+ [-0xffffffffn, 0x80000000n, -0x17fffffffn],
+ [-0xfffffffen, 0x80000000n, -0x17ffffffen],
+ [-0x80000001n, 0x80000000n, -0x100000001n],
+ [-0x80000000n, 0x80000000n, -0x100000000n],
+ [-0x7fffffffn, 0x80000000n, -0xffffffffn],
+ [-0x7ffffffen, 0x80000000n, -0xfffffffen],
+ [-2n, 0x80000000n, -0x80000002n],
+ [-1n, 0x80000000n, -0x80000001n],
+ [0n, 0x80000000n, -0x80000000n],
+ [1n, 0x80000000n, -0x7fffffffn],
+ [2n, 0x80000000n, -0x7ffffffen],
+ [0x7ffffffen, 0x80000000n, -2n],
+ [0x7fffffffn, 0x80000000n, -1n],
+ [0x80000000n, 0x80000000n, 0n],
+ [0x80000001n, 0x80000000n, 1n],
+ [0xfffffffen, 0x80000000n, 0x7ffffffen],
+ [0xffffffffn, 0x80000000n, 0x7fffffffn],
+ [0x100000000n, 0x80000000n, 0x80000000n],
+ [0x100000001n, 0x80000000n, 0x80000001n],
+ [0x7ffffffffffffffen, 0x80000000n, 0x7fffffff7ffffffen],
+ [0x7fffffffffffffffn, 0x80000000n, 0x7fffffff7fffffffn],
+ [0x8000000000000000n, 0x80000000n, 0x7fffffff80000000n],
+ [0x8000000000000001n, 0x80000000n, 0x7fffffff80000001n],
+ [0xfffffffffffffffen, 0x80000000n, 0xffffffff7ffffffen],
+ [0xffffffffffffffffn, 0x80000000n, 0xffffffff7fffffffn],
+ [0x10000000000000000n, 0x80000000n, 0xffffffff80000000n],
+ [0x10000000000000001n, 0x80000000n, 0xffffffff80000001n],
+ [-0x10000000000000001n, 0x80000001n, -0x10000000080000002n],
+ [-0x10000000000000000n, 0x80000001n, -0x10000000080000001n],
+ [-0xffffffffffffffffn, 0x80000001n, -0x10000000080000000n],
+ [-0xfffffffffffffffen, 0x80000001n, -0x1000000007fffffffn],
+ [-0x8000000000000001n, 0x80000001n, -0x8000000080000002n],
+ [-0x8000000000000000n, 0x80000001n, -0x8000000080000001n],
+ [-0x7fffffffffffffffn, 0x80000001n, -0x8000000080000000n],
+ [-0x7ffffffffffffffen, 0x80000001n, -0x800000007fffffffn],
+ [-0x100000001n, 0x80000001n, -0x180000002n],
+ [-0x100000000n, 0x80000001n, -0x180000001n],
+ [-0xffffffffn, 0x80000001n, -0x180000000n],
+ [-0xfffffffen, 0x80000001n, -0x17fffffffn],
+ [-0x80000001n, 0x80000001n, -0x100000002n],
+ [-0x80000000n, 0x80000001n, -0x100000001n],
+ [-0x7fffffffn, 0x80000001n, -0x100000000n],
+ [-0x7ffffffen, 0x80000001n, -0xffffffffn],
+ [-2n, 0x80000001n, -0x80000003n],
+ [-1n, 0x80000001n, -0x80000002n],
+ [0n, 0x80000001n, -0x80000001n],
+ [1n, 0x80000001n, -0x80000000n],
+ [2n, 0x80000001n, -0x7fffffffn],
+ [0x7ffffffen, 0x80000001n, -3n],
+ [0x7fffffffn, 0x80000001n, -2n],
+ [0x80000000n, 0x80000001n, -1n],
+ [0x80000001n, 0x80000001n, 0n],
+ [0xfffffffen, 0x80000001n, 0x7ffffffdn],
+ [0xffffffffn, 0x80000001n, 0x7ffffffen],
+ [0x100000000n, 0x80000001n, 0x7fffffffn],
+ [0x100000001n, 0x80000001n, 0x80000000n],
+ [0x7ffffffffffffffen, 0x80000001n, 0x7fffffff7ffffffdn],
+ [0x7fffffffffffffffn, 0x80000001n, 0x7fffffff7ffffffen],
+ [0x8000000000000000n, 0x80000001n, 0x7fffffff7fffffffn],
+ [0x8000000000000001n, 0x80000001n, 0x7fffffff80000000n],
+ [0xfffffffffffffffen, 0x80000001n, 0xffffffff7ffffffdn],
+ [0xffffffffffffffffn, 0x80000001n, 0xffffffff7ffffffen],
+ [0x10000000000000000n, 0x80000001n, 0xffffffff7fffffffn],
+ [0x10000000000000001n, 0x80000001n, 0xffffffff80000000n],
+ [-0x10000000000000001n, -0x80000001n, -0xffffffff80000000n],
+ [-0x10000000000000000n, -0x80000001n, -0xffffffff7fffffffn],
+ [-0xffffffffffffffffn, -0x80000001n, -0xffffffff7ffffffen],
+ [-0xfffffffffffffffen, -0x80000001n, -0xffffffff7ffffffdn],
+ [-0x8000000000000001n, -0x80000001n, -0x7fffffff80000000n],
+ [-0x8000000000000000n, -0x80000001n, -0x7fffffff7fffffffn],
+ [-0x7fffffffffffffffn, -0x80000001n, -0x7fffffff7ffffffen],
+ [-0x7ffffffffffffffen, -0x80000001n, -0x7fffffff7ffffffdn],
+ [-0x100000001n, -0x80000001n, -0x80000000n],
+ [-0x100000000n, -0x80000001n, -0x7fffffffn],
+ [-0xffffffffn, -0x80000001n, -0x7ffffffen],
+ [-0xfffffffen, -0x80000001n, -0x7ffffffdn],
+ [-0x80000001n, -0x80000001n, 0n],
+ [-0x80000000n, -0x80000001n, 1n],
+ [-0x7fffffffn, -0x80000001n, 2n],
+ [-0x7ffffffen, -0x80000001n, 3n],
+ [-2n, -0x80000001n, 0x7fffffffn],
+ [-1n, -0x80000001n, 0x80000000n],
+ [0n, -0x80000001n, 0x80000001n],
+ [1n, -0x80000001n, 0x80000002n],
+ [2n, -0x80000001n, 0x80000003n],
+ [0x7ffffffen, -0x80000001n, 0xffffffffn],
+ [0x7fffffffn, -0x80000001n, 0x100000000n],
+ [0x80000000n, -0x80000001n, 0x100000001n],
+ [0x80000001n, -0x80000001n, 0x100000002n],
+ [0xfffffffen, -0x80000001n, 0x17fffffffn],
+ [0xffffffffn, -0x80000001n, 0x180000000n],
+ [0x100000000n, -0x80000001n, 0x180000001n],
+ [0x100000001n, -0x80000001n, 0x180000002n],
+ [0x7ffffffffffffffen, -0x80000001n, 0x800000007fffffffn],
+ [0x7fffffffffffffffn, -0x80000001n, 0x8000000080000000n],
+ [0x8000000000000000n, -0x80000001n, 0x8000000080000001n],
+ [0x8000000000000001n, -0x80000001n, 0x8000000080000002n],
+ [0xfffffffffffffffen, -0x80000001n, 0x1000000007fffffffn],
+ [0xffffffffffffffffn, -0x80000001n, 0x10000000080000000n],
+ [0x10000000000000000n, -0x80000001n, 0x10000000080000001n],
+ [0x10000000000000001n, -0x80000001n, 0x10000000080000002n],
+ [-0x10000000000000001n, -0x80000000n, -0xffffffff80000001n],
+ [-0x10000000000000000n, -0x80000000n, -0xffffffff80000000n],
+ [-0xffffffffffffffffn, -0x80000000n, -0xffffffff7fffffffn],
+ [-0xfffffffffffffffen, -0x80000000n, -0xffffffff7ffffffen],
+ [-0x8000000000000001n, -0x80000000n, -0x7fffffff80000001n],
+ [-0x8000000000000000n, -0x80000000n, -0x7fffffff80000000n],
+ [-0x7fffffffffffffffn, -0x80000000n, -0x7fffffff7fffffffn],
+ [-0x7ffffffffffffffen, -0x80000000n, -0x7fffffff7ffffffen],
+ [-0x100000001n, -0x80000000n, -0x80000001n],
+ [-0x100000000n, -0x80000000n, -0x80000000n],
+ [-0xffffffffn, -0x80000000n, -0x7fffffffn],
+ [-0xfffffffen, -0x80000000n, -0x7ffffffen],
+ [-0x80000001n, -0x80000000n, -1n],
+ [-0x80000000n, -0x80000000n, 0n],
+ [-0x7fffffffn, -0x80000000n, 1n],
+ [-0x7ffffffen, -0x80000000n, 2n],
+ [-2n, -0x80000000n, 0x7ffffffen],
+ [-1n, -0x80000000n, 0x7fffffffn],
+ [0n, -0x80000000n, 0x80000000n],
+ [1n, -0x80000000n, 0x80000001n],
+ [2n, -0x80000000n, 0x80000002n],
+ [0x7ffffffen, -0x80000000n, 0xfffffffen],
+ [0x7fffffffn, -0x80000000n, 0xffffffffn],
+ [0x80000000n, -0x80000000n, 0x100000000n],
+ [0x80000001n, -0x80000000n, 0x100000001n],
+ [0xfffffffen, -0x80000000n, 0x17ffffffen],
+ [0xffffffffn, -0x80000000n, 0x17fffffffn],
+ [0x100000000n, -0x80000000n, 0x180000000n],
+ [0x100000001n, -0x80000000n, 0x180000001n],
+ [0x7ffffffffffffffen, -0x80000000n, 0x800000007ffffffen],
+ [0x7fffffffffffffffn, -0x80000000n, 0x800000007fffffffn],
+ [0x8000000000000000n, -0x80000000n, 0x8000000080000000n],
+ [0x8000000000000001n, -0x80000000n, 0x8000000080000001n],
+ [0xfffffffffffffffen, -0x80000000n, 0x1000000007ffffffen],
+ [0xffffffffffffffffn, -0x80000000n, 0x1000000007fffffffn],
+ [0x10000000000000000n, -0x80000000n, 0x10000000080000000n],
+ [0x10000000000000001n, -0x80000000n, 0x10000000080000001n],
+ [-0x10000000000000001n, -0x7fffffffn, -0xffffffff80000002n],
+ [-0x10000000000000000n, -0x7fffffffn, -0xffffffff80000001n],
+ [-0xffffffffffffffffn, -0x7fffffffn, -0xffffffff80000000n],
+ [-0xfffffffffffffffen, -0x7fffffffn, -0xffffffff7fffffffn],
+ [-0x8000000000000001n, -0x7fffffffn, -0x7fffffff80000002n],
+ [-0x8000000000000000n, -0x7fffffffn, -0x7fffffff80000001n],
+ [-0x7fffffffffffffffn, -0x7fffffffn, -0x7fffffff80000000n],
+ [-0x7ffffffffffffffen, -0x7fffffffn, -0x7fffffff7fffffffn],
+ [-0x100000001n, -0x7fffffffn, -0x80000002n],
+ [-0x100000000n, -0x7fffffffn, -0x80000001n],
+ [-0xffffffffn, -0x7fffffffn, -0x80000000n],
+ [-0xfffffffen, -0x7fffffffn, -0x7fffffffn],
+ [-0x80000001n, -0x7fffffffn, -2n],
+ [-0x80000000n, -0x7fffffffn, -1n],
+ [-0x7fffffffn, -0x7fffffffn, 0n],
+ [-0x7ffffffen, -0x7fffffffn, 1n],
+ [-2n, -0x7fffffffn, 0x7ffffffdn],
+ [-1n, -0x7fffffffn, 0x7ffffffen],
+ [0n, -0x7fffffffn, 0x7fffffffn],
+ [1n, -0x7fffffffn, 0x80000000n],
+ [2n, -0x7fffffffn, 0x80000001n],
+ [0x7ffffffen, -0x7fffffffn, 0xfffffffdn],
+ [0x7fffffffn, -0x7fffffffn, 0xfffffffen],
+ [0x80000000n, -0x7fffffffn, 0xffffffffn],
+ [0x80000001n, -0x7fffffffn, 0x100000000n],
+ [0xfffffffen, -0x7fffffffn, 0x17ffffffdn],
+ [0xffffffffn, -0x7fffffffn, 0x17ffffffen],
+ [0x100000000n, -0x7fffffffn, 0x17fffffffn],
+ [0x100000001n, -0x7fffffffn, 0x180000000n],
+ [0x7ffffffffffffffen, -0x7fffffffn, 0x800000007ffffffdn],
+ [0x7fffffffffffffffn, -0x7fffffffn, 0x800000007ffffffen],
+ [0x8000000000000000n, -0x7fffffffn, 0x800000007fffffffn],
+ [0x8000000000000001n, -0x7fffffffn, 0x8000000080000000n],
+ [0xfffffffffffffffen, -0x7fffffffn, 0x1000000007ffffffdn],
+ [0xffffffffffffffffn, -0x7fffffffn, 0x1000000007ffffffen],
+ [0x10000000000000000n, -0x7fffffffn, 0x1000000007fffffffn],
+ [0x10000000000000001n, -0x7fffffffn, 0x10000000080000000n],
+ [-0x10000000000000001n, -0x7ffffffen, -0xffffffff80000003n],
+ [-0x10000000000000000n, -0x7ffffffen, -0xffffffff80000002n],
+ [-0xffffffffffffffffn, -0x7ffffffen, -0xffffffff80000001n],
+ [-0xfffffffffffffffen, -0x7ffffffen, -0xffffffff80000000n],
+ [-0x8000000000000001n, -0x7ffffffen, -0x7fffffff80000003n],
+ [-0x8000000000000000n, -0x7ffffffen, -0x7fffffff80000002n],
+ [-0x7fffffffffffffffn, -0x7ffffffen, -0x7fffffff80000001n],
+ [-0x7ffffffffffffffen, -0x7ffffffen, -0x7fffffff80000000n],
+ [-0x100000001n, -0x7ffffffen, -0x80000003n],
+ [-0x100000000n, -0x7ffffffen, -0x80000002n],
+ [-0xffffffffn, -0x7ffffffen, -0x80000001n],
+ [-0xfffffffen, -0x7ffffffen, -0x80000000n],
+ [-0x80000001n, -0x7ffffffen, -3n],
+ [-0x80000000n, -0x7ffffffen, -2n],
+ [-0x7fffffffn, -0x7ffffffen, -1n],
+ [-0x7ffffffen, -0x7ffffffen, 0n],
+ [-2n, -0x7ffffffen, 0x7ffffffcn],
+ [-1n, -0x7ffffffen, 0x7ffffffdn],
+ [0n, -0x7ffffffen, 0x7ffffffen],
+ [1n, -0x7ffffffen, 0x7fffffffn],
+ [2n, -0x7ffffffen, 0x80000000n],
+ [0x7ffffffen, -0x7ffffffen, 0xfffffffcn],
+ [0x7fffffffn, -0x7ffffffen, 0xfffffffdn],
+ [0x80000000n, -0x7ffffffen, 0xfffffffen],
+ [0x80000001n, -0x7ffffffen, 0xffffffffn],
+ [0xfffffffen, -0x7ffffffen, 0x17ffffffcn],
+ [0xffffffffn, -0x7ffffffen, 0x17ffffffdn],
+ [0x100000000n, -0x7ffffffen, 0x17ffffffen],
+ [0x100000001n, -0x7ffffffen, 0x17fffffffn],
+ [0x7ffffffffffffffen, -0x7ffffffen, 0x800000007ffffffcn],
+ [0x7fffffffffffffffn, -0x7ffffffen, 0x800000007ffffffdn],
+ [0x8000000000000000n, -0x7ffffffen, 0x800000007ffffffen],
+ [0x8000000000000001n, -0x7ffffffen, 0x800000007fffffffn],
+ [0xfffffffffffffffen, -0x7ffffffen, 0x1000000007ffffffcn],
+ [0xffffffffffffffffn, -0x7ffffffen, 0x1000000007ffffffdn],
+ [0x10000000000000000n, -0x7ffffffen, 0x1000000007ffffffen],
+ [0x10000000000000001n, -0x7ffffffen, 0x1000000007fffffffn],
+ [-0x10000000000000001n, 0xfffffffen, -0x100000000ffffffffn],
+ [-0x10000000000000000n, 0xfffffffen, -0x100000000fffffffen],
+ [-0xffffffffffffffffn, 0xfffffffen, -0x100000000fffffffdn],
+ [-0xfffffffffffffffen, 0xfffffffen, -0x100000000fffffffcn],
+ [-0x8000000000000001n, 0xfffffffen, -0x80000000ffffffffn],
+ [-0x8000000000000000n, 0xfffffffen, -0x80000000fffffffen],
+ [-0x7fffffffffffffffn, 0xfffffffen, -0x80000000fffffffdn],
+ [-0x7ffffffffffffffen, 0xfffffffen, -0x80000000fffffffcn],
+ [-0x100000001n, 0xfffffffen, -0x1ffffffffn],
+ [-0x100000000n, 0xfffffffen, -0x1fffffffen],
+ [-0xffffffffn, 0xfffffffen, -0x1fffffffdn],
+ [-0xfffffffen, 0xfffffffen, -0x1fffffffcn],
+ [-0x80000001n, 0xfffffffen, -0x17fffffffn],
+ [-0x80000000n, 0xfffffffen, -0x17ffffffen],
+ [-0x7fffffffn, 0xfffffffen, -0x17ffffffdn],
+ [-0x7ffffffen, 0xfffffffen, -0x17ffffffcn],
+ [-2n, 0xfffffffen, -0x100000000n],
+ [-1n, 0xfffffffen, -0xffffffffn],
+ [0n, 0xfffffffen, -0xfffffffen],
+ [1n, 0xfffffffen, -0xfffffffdn],
+ [2n, 0xfffffffen, -0xfffffffcn],
+ [0x7ffffffen, 0xfffffffen, -0x80000000n],
+ [0x7fffffffn, 0xfffffffen, -0x7fffffffn],
+ [0x80000000n, 0xfffffffen, -0x7ffffffen],
+ [0x80000001n, 0xfffffffen, -0x7ffffffdn],
+ [0xfffffffen, 0xfffffffen, 0n],
+ [0xffffffffn, 0xfffffffen, 1n],
+ [0x100000000n, 0xfffffffen, 2n],
+ [0x100000001n, 0xfffffffen, 3n],
+ [0x7ffffffffffffffen, 0xfffffffen, 0x7fffffff00000000n],
+ [0x7fffffffffffffffn, 0xfffffffen, 0x7fffffff00000001n],
+ [0x8000000000000000n, 0xfffffffen, 0x7fffffff00000002n],
+ [0x8000000000000001n, 0xfffffffen, 0x7fffffff00000003n],
+ [0xfffffffffffffffen, 0xfffffffen, 0xffffffff00000000n],
+ [0xffffffffffffffffn, 0xfffffffen, 0xffffffff00000001n],
+ [0x10000000000000000n, 0xfffffffen, 0xffffffff00000002n],
+ [0x10000000000000001n, 0xfffffffen, 0xffffffff00000003n],
+ [-0x10000000000000001n, 0xffffffffn, -0x10000000100000000n],
+ [-0x10000000000000000n, 0xffffffffn, -0x100000000ffffffffn],
+ [-0xffffffffffffffffn, 0xffffffffn, -0x100000000fffffffen],
+ [-0xfffffffffffffffen, 0xffffffffn, -0x100000000fffffffdn],
+ [-0x8000000000000001n, 0xffffffffn, -0x8000000100000000n],
+ [-0x8000000000000000n, 0xffffffffn, -0x80000000ffffffffn],
+ [-0x7fffffffffffffffn, 0xffffffffn, -0x80000000fffffffen],
+ [-0x7ffffffffffffffen, 0xffffffffn, -0x80000000fffffffdn],
+ [-0x100000001n, 0xffffffffn, -0x200000000n],
+ [-0x100000000n, 0xffffffffn, -0x1ffffffffn],
+ [-0xffffffffn, 0xffffffffn, -0x1fffffffen],
+ [-0xfffffffen, 0xffffffffn, -0x1fffffffdn],
+ [-0x80000001n, 0xffffffffn, -0x180000000n],
+ [-0x80000000n, 0xffffffffn, -0x17fffffffn],
+ [-0x7fffffffn, 0xffffffffn, -0x17ffffffen],
+ [-0x7ffffffen, 0xffffffffn, -0x17ffffffdn],
+ [-2n, 0xffffffffn, -0x100000001n],
+ [-1n, 0xffffffffn, -0x100000000n],
+ [0n, 0xffffffffn, -0xffffffffn],
+ [1n, 0xffffffffn, -0xfffffffen],
+ [2n, 0xffffffffn, -0xfffffffdn],
+ [0x7ffffffen, 0xffffffffn, -0x80000001n],
+ [0x7fffffffn, 0xffffffffn, -0x80000000n],
+ [0x80000000n, 0xffffffffn, -0x7fffffffn],
+ [0x80000001n, 0xffffffffn, -0x7ffffffen],
+ [0xfffffffen, 0xffffffffn, -1n],
+ [0xffffffffn, 0xffffffffn, 0n],
+ [0x100000000n, 0xffffffffn, 1n],
+ [0x100000001n, 0xffffffffn, 2n],
+ [0x7ffffffffffffffen, 0xffffffffn, 0x7ffffffeffffffffn],
+ [0x7fffffffffffffffn, 0xffffffffn, 0x7fffffff00000000n],
+ [0x8000000000000000n, 0xffffffffn, 0x7fffffff00000001n],
+ [0x8000000000000001n, 0xffffffffn, 0x7fffffff00000002n],
+ [0xfffffffffffffffen, 0xffffffffn, 0xfffffffeffffffffn],
+ [0xffffffffffffffffn, 0xffffffffn, 0xffffffff00000000n],
+ [0x10000000000000000n, 0xffffffffn, 0xffffffff00000001n],
+ [0x10000000000000001n, 0xffffffffn, 0xffffffff00000002n],
+ [-0x10000000000000001n, 0x100000000n, -0x10000000100000001n],
+ [-0x10000000000000000n, 0x100000000n, -0x10000000100000000n],
+ [-0xffffffffffffffffn, 0x100000000n, -0x100000000ffffffffn],
+ [-0xfffffffffffffffen, 0x100000000n, -0x100000000fffffffen],
+ [-0x8000000000000001n, 0x100000000n, -0x8000000100000001n],
+ [-0x8000000000000000n, 0x100000000n, -0x8000000100000000n],
+ [-0x7fffffffffffffffn, 0x100000000n, -0x80000000ffffffffn],
+ [-0x7ffffffffffffffen, 0x100000000n, -0x80000000fffffffen],
+ [-0x100000001n, 0x100000000n, -0x200000001n],
+ [-0x100000000n, 0x100000000n, -0x200000000n],
+ [-0xffffffffn, 0x100000000n, -0x1ffffffffn],
+ [-0xfffffffen, 0x100000000n, -0x1fffffffen],
+ [-0x80000001n, 0x100000000n, -0x180000001n],
+ [-0x80000000n, 0x100000000n, -0x180000000n],
+ [-0x7fffffffn, 0x100000000n, -0x17fffffffn],
+ [-0x7ffffffen, 0x100000000n, -0x17ffffffen],
+ [-2n, 0x100000000n, -0x100000002n],
+ [-1n, 0x100000000n, -0x100000001n],
+ [0n, 0x100000000n, -0x100000000n],
+ [1n, 0x100000000n, -0xffffffffn],
+ [2n, 0x100000000n, -0xfffffffen],
+ [0x7ffffffen, 0x100000000n, -0x80000002n],
+ [0x7fffffffn, 0x100000000n, -0x80000001n],
+ [0x80000000n, 0x100000000n, -0x80000000n],
+ [0x80000001n, 0x100000000n, -0x7fffffffn],
+ [0xfffffffen, 0x100000000n, -2n],
+ [0xffffffffn, 0x100000000n, -1n],
+ [0x100000000n, 0x100000000n, 0n],
+ [0x100000001n, 0x100000000n, 1n],
+ [0x7ffffffffffffffen, 0x100000000n, 0x7ffffffefffffffen],
+ [0x7fffffffffffffffn, 0x100000000n, 0x7ffffffeffffffffn],
+ [0x8000000000000000n, 0x100000000n, 0x7fffffff00000000n],
+ [0x8000000000000001n, 0x100000000n, 0x7fffffff00000001n],
+ [0xfffffffffffffffen, 0x100000000n, 0xfffffffefffffffen],
+ [0xffffffffffffffffn, 0x100000000n, 0xfffffffeffffffffn],
+ [0x10000000000000000n, 0x100000000n, 0xffffffff00000000n],
+ [0x10000000000000001n, 0x100000000n, 0xffffffff00000001n],
+ [-0x10000000000000001n, 0x100000001n, -0x10000000100000002n],
+ [-0x10000000000000000n, 0x100000001n, -0x10000000100000001n],
+ [-0xffffffffffffffffn, 0x100000001n, -0x10000000100000000n],
+ [-0xfffffffffffffffen, 0x100000001n, -0x100000000ffffffffn],
+ [-0x8000000000000001n, 0x100000001n, -0x8000000100000002n],
+ [-0x8000000000000000n, 0x100000001n, -0x8000000100000001n],
+ [-0x7fffffffffffffffn, 0x100000001n, -0x8000000100000000n],
+ [-0x7ffffffffffffffen, 0x100000001n, -0x80000000ffffffffn],
+ [-0x100000001n, 0x100000001n, -0x200000002n],
+ [-0x100000000n, 0x100000001n, -0x200000001n],
+ [-0xffffffffn, 0x100000001n, -0x200000000n],
+ [-0xfffffffen, 0x100000001n, -0x1ffffffffn],
+ [-0x80000001n, 0x100000001n, -0x180000002n],
+ [-0x80000000n, 0x100000001n, -0x180000001n],
+ [-0x7fffffffn, 0x100000001n, -0x180000000n],
+ [-0x7ffffffen, 0x100000001n, -0x17fffffffn],
+ [-2n, 0x100000001n, -0x100000003n],
+ [-1n, 0x100000001n, -0x100000002n],
+ [0n, 0x100000001n, -0x100000001n],
+ [1n, 0x100000001n, -0x100000000n],
+ [2n, 0x100000001n, -0xffffffffn],
+ [0x7ffffffen, 0x100000001n, -0x80000003n],
+ [0x7fffffffn, 0x100000001n, -0x80000002n],
+ [0x80000000n, 0x100000001n, -0x80000001n],
+ [0x80000001n, 0x100000001n, -0x80000000n],
+ [0xfffffffen, 0x100000001n, -3n],
+ [0xffffffffn, 0x100000001n, -2n],
+ [0x100000000n, 0x100000001n, -1n],
+ [0x100000001n, 0x100000001n, 0n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x7ffffffefffffffdn],
+ [0x7fffffffffffffffn, 0x100000001n, 0x7ffffffefffffffen],
+ [0x8000000000000000n, 0x100000001n, 0x7ffffffeffffffffn],
+ [0x8000000000000001n, 0x100000001n, 0x7fffffff00000000n],
+ [0xfffffffffffffffen, 0x100000001n, 0xfffffffefffffffdn],
+ [0xffffffffffffffffn, 0x100000001n, 0xfffffffefffffffen],
+ [0x10000000000000000n, 0x100000001n, 0xfffffffeffffffffn],
+ [0x10000000000000001n, 0x100000001n, 0xffffffff00000000n],
+ [-0x10000000000000001n, -0x100000001n, -0xffffffff00000000n],
+ [-0x10000000000000000n, -0x100000001n, -0xfffffffeffffffffn],
+ [-0xffffffffffffffffn, -0x100000001n, -0xfffffffefffffffen],
+ [-0xfffffffffffffffen, -0x100000001n, -0xfffffffefffffffdn],
+ [-0x8000000000000001n, -0x100000001n, -0x7fffffff00000000n],
+ [-0x8000000000000000n, -0x100000001n, -0x7ffffffeffffffffn],
+ [-0x7fffffffffffffffn, -0x100000001n, -0x7ffffffefffffffen],
+ [-0x7ffffffffffffffen, -0x100000001n, -0x7ffffffefffffffdn],
+ [-0x100000001n, -0x100000001n, 0n],
+ [-0x100000000n, -0x100000001n, 1n],
+ [-0xffffffffn, -0x100000001n, 2n],
+ [-0xfffffffen, -0x100000001n, 3n],
+ [-0x80000001n, -0x100000001n, 0x80000000n],
+ [-0x80000000n, -0x100000001n, 0x80000001n],
+ [-0x7fffffffn, -0x100000001n, 0x80000002n],
+ [-0x7ffffffen, -0x100000001n, 0x80000003n],
+ [-2n, -0x100000001n, 0xffffffffn],
+ [-1n, -0x100000001n, 0x100000000n],
+ [0n, -0x100000001n, 0x100000001n],
+ [1n, -0x100000001n, 0x100000002n],
+ [2n, -0x100000001n, 0x100000003n],
+ [0x7ffffffen, -0x100000001n, 0x17fffffffn],
+ [0x7fffffffn, -0x100000001n, 0x180000000n],
+ [0x80000000n, -0x100000001n, 0x180000001n],
+ [0x80000001n, -0x100000001n, 0x180000002n],
+ [0xfffffffen, -0x100000001n, 0x1ffffffffn],
+ [0xffffffffn, -0x100000001n, 0x200000000n],
+ [0x100000000n, -0x100000001n, 0x200000001n],
+ [0x100000001n, -0x100000001n, 0x200000002n],
+ [0x7ffffffffffffffen, -0x100000001n, 0x80000000ffffffffn],
+ [0x7fffffffffffffffn, -0x100000001n, 0x8000000100000000n],
+ [0x8000000000000000n, -0x100000001n, 0x8000000100000001n],
+ [0x8000000000000001n, -0x100000001n, 0x8000000100000002n],
+ [0xfffffffffffffffen, -0x100000001n, 0x100000000ffffffffn],
+ [0xffffffffffffffffn, -0x100000001n, 0x10000000100000000n],
+ [0x10000000000000000n, -0x100000001n, 0x10000000100000001n],
+ [0x10000000000000001n, -0x100000001n, 0x10000000100000002n],
+ [-0x10000000000000001n, -0x100000000n, -0xffffffff00000001n],
+ [-0x10000000000000000n, -0x100000000n, -0xffffffff00000000n],
+ [-0xffffffffffffffffn, -0x100000000n, -0xfffffffeffffffffn],
+ [-0xfffffffffffffffen, -0x100000000n, -0xfffffffefffffffen],
+ [-0x8000000000000001n, -0x100000000n, -0x7fffffff00000001n],
+ [-0x8000000000000000n, -0x100000000n, -0x7fffffff00000000n],
+ [-0x7fffffffffffffffn, -0x100000000n, -0x7ffffffeffffffffn],
+ [-0x7ffffffffffffffen, -0x100000000n, -0x7ffffffefffffffen],
+ [-0x100000001n, -0x100000000n, -1n],
+ [-0x100000000n, -0x100000000n, 0n],
+ [-0xffffffffn, -0x100000000n, 1n],
+ [-0xfffffffen, -0x100000000n, 2n],
+ [-0x80000001n, -0x100000000n, 0x7fffffffn],
+ [-0x80000000n, -0x100000000n, 0x80000000n],
+ [-0x7fffffffn, -0x100000000n, 0x80000001n],
+ [-0x7ffffffen, -0x100000000n, 0x80000002n],
+ [-2n, -0x100000000n, 0xfffffffen],
+ [-1n, -0x100000000n, 0xffffffffn],
+ [0n, -0x100000000n, 0x100000000n],
+ [1n, -0x100000000n, 0x100000001n],
+ [2n, -0x100000000n, 0x100000002n],
+ [0x7ffffffen, -0x100000000n, 0x17ffffffen],
+ [0x7fffffffn, -0x100000000n, 0x17fffffffn],
+ [0x80000000n, -0x100000000n, 0x180000000n],
+ [0x80000001n, -0x100000000n, 0x180000001n],
+ [0xfffffffen, -0x100000000n, 0x1fffffffen],
+ [0xffffffffn, -0x100000000n, 0x1ffffffffn],
+ [0x100000000n, -0x100000000n, 0x200000000n],
+ [0x100000001n, -0x100000000n, 0x200000001n],
+ [0x7ffffffffffffffen, -0x100000000n, 0x80000000fffffffen],
+ [0x7fffffffffffffffn, -0x100000000n, 0x80000000ffffffffn],
+ [0x8000000000000000n, -0x100000000n, 0x8000000100000000n],
+ [0x8000000000000001n, -0x100000000n, 0x8000000100000001n],
+ [0xfffffffffffffffen, -0x100000000n, 0x100000000fffffffen],
+ [0xffffffffffffffffn, -0x100000000n, 0x100000000ffffffffn],
+ [0x10000000000000000n, -0x100000000n, 0x10000000100000000n],
+ [0x10000000000000001n, -0x100000000n, 0x10000000100000001n],
+ [-0x10000000000000001n, -0xffffffffn, -0xffffffff00000002n],
+ [-0x10000000000000000n, -0xffffffffn, -0xffffffff00000001n],
+ [-0xffffffffffffffffn, -0xffffffffn, -0xffffffff00000000n],
+ [-0xfffffffffffffffen, -0xffffffffn, -0xfffffffeffffffffn],
+ [-0x8000000000000001n, -0xffffffffn, -0x7fffffff00000002n],
+ [-0x8000000000000000n, -0xffffffffn, -0x7fffffff00000001n],
+ [-0x7fffffffffffffffn, -0xffffffffn, -0x7fffffff00000000n],
+ [-0x7ffffffffffffffen, -0xffffffffn, -0x7ffffffeffffffffn],
+ [-0x100000001n, -0xffffffffn, -2n],
+ [-0x100000000n, -0xffffffffn, -1n],
+ [-0xffffffffn, -0xffffffffn, 0n],
+ [-0xfffffffen, -0xffffffffn, 1n],
+ [-0x80000001n, -0xffffffffn, 0x7ffffffen],
+ [-0x80000000n, -0xffffffffn, 0x7fffffffn],
+ [-0x7fffffffn, -0xffffffffn, 0x80000000n],
+ [-0x7ffffffen, -0xffffffffn, 0x80000001n],
+ [-2n, -0xffffffffn, 0xfffffffdn],
+ [-1n, -0xffffffffn, 0xfffffffen],
+ [0n, -0xffffffffn, 0xffffffffn],
+ [1n, -0xffffffffn, 0x100000000n],
+ [2n, -0xffffffffn, 0x100000001n],
+ [0x7ffffffen, -0xffffffffn, 0x17ffffffdn],
+ [0x7fffffffn, -0xffffffffn, 0x17ffffffen],
+ [0x80000000n, -0xffffffffn, 0x17fffffffn],
+ [0x80000001n, -0xffffffffn, 0x180000000n],
+ [0xfffffffen, -0xffffffffn, 0x1fffffffdn],
+ [0xffffffffn, -0xffffffffn, 0x1fffffffen],
+ [0x100000000n, -0xffffffffn, 0x1ffffffffn],
+ [0x100000001n, -0xffffffffn, 0x200000000n],
+ [0x7ffffffffffffffen, -0xffffffffn, 0x80000000fffffffdn],
+ [0x7fffffffffffffffn, -0xffffffffn, 0x80000000fffffffen],
+ [0x8000000000000000n, -0xffffffffn, 0x80000000ffffffffn],
+ [0x8000000000000001n, -0xffffffffn, 0x8000000100000000n],
+ [0xfffffffffffffffen, -0xffffffffn, 0x100000000fffffffdn],
+ [0xffffffffffffffffn, -0xffffffffn, 0x100000000fffffffen],
+ [0x10000000000000000n, -0xffffffffn, 0x100000000ffffffffn],
+ [0x10000000000000001n, -0xffffffffn, 0x10000000100000000n],
+ [-0x10000000000000001n, -0xfffffffen, -0xffffffff00000003n],
+ [-0x10000000000000000n, -0xfffffffen, -0xffffffff00000002n],
+ [-0xffffffffffffffffn, -0xfffffffen, -0xffffffff00000001n],
+ [-0xfffffffffffffffen, -0xfffffffen, -0xffffffff00000000n],
+ [-0x8000000000000001n, -0xfffffffen, -0x7fffffff00000003n],
+ [-0x8000000000000000n, -0xfffffffen, -0x7fffffff00000002n],
+ [-0x7fffffffffffffffn, -0xfffffffen, -0x7fffffff00000001n],
+ [-0x7ffffffffffffffen, -0xfffffffen, -0x7fffffff00000000n],
+ [-0x100000001n, -0xfffffffen, -3n],
+ [-0x100000000n, -0xfffffffen, -2n],
+ [-0xffffffffn, -0xfffffffen, -1n],
+ [-0xfffffffen, -0xfffffffen, 0n],
+ [-0x80000001n, -0xfffffffen, 0x7ffffffdn],
+ [-0x80000000n, -0xfffffffen, 0x7ffffffen],
+ [-0x7fffffffn, -0xfffffffen, 0x7fffffffn],
+ [-0x7ffffffen, -0xfffffffen, 0x80000000n],
+ [-2n, -0xfffffffen, 0xfffffffcn],
+ [-1n, -0xfffffffen, 0xfffffffdn],
+ [0n, -0xfffffffen, 0xfffffffen],
+ [1n, -0xfffffffen, 0xffffffffn],
+ [2n, -0xfffffffen, 0x100000000n],
+ [0x7ffffffen, -0xfffffffen, 0x17ffffffcn],
+ [0x7fffffffn, -0xfffffffen, 0x17ffffffdn],
+ [0x80000000n, -0xfffffffen, 0x17ffffffen],
+ [0x80000001n, -0xfffffffen, 0x17fffffffn],
+ [0xfffffffen, -0xfffffffen, 0x1fffffffcn],
+ [0xffffffffn, -0xfffffffen, 0x1fffffffdn],
+ [0x100000000n, -0xfffffffen, 0x1fffffffen],
+ [0x100000001n, -0xfffffffen, 0x1ffffffffn],
+ [0x7ffffffffffffffen, -0xfffffffen, 0x80000000fffffffcn],
+ [0x7fffffffffffffffn, -0xfffffffen, 0x80000000fffffffdn],
+ [0x8000000000000000n, -0xfffffffen, 0x80000000fffffffen],
+ [0x8000000000000001n, -0xfffffffen, 0x80000000ffffffffn],
+ [0xfffffffffffffffen, -0xfffffffen, 0x100000000fffffffcn],
+ [0xffffffffffffffffn, -0xfffffffen, 0x100000000fffffffdn],
+ [0x10000000000000000n, -0xfffffffen, 0x100000000fffffffen],
+ [0x10000000000000001n, -0xfffffffen, 0x100000000ffffffffn],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, -0x17fffffffffffffffn],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, -0x17ffffffffffffffen],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, -0x17ffffffffffffffdn],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, -0x17ffffffffffffffcn],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, -0xffffffffffffffffn],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, -0xfffffffffffffffen],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, -0xfffffffffffffffdn],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, -0xfffffffffffffffcn],
+ [-0x100000001n, 0x7ffffffffffffffen, -0x80000000ffffffffn],
+ [-0x100000000n, 0x7ffffffffffffffen, -0x80000000fffffffen],
+ [-0xffffffffn, 0x7ffffffffffffffen, -0x80000000fffffffdn],
+ [-0xfffffffen, 0x7ffffffffffffffen, -0x80000000fffffffcn],
+ [-0x80000001n, 0x7ffffffffffffffen, -0x800000007fffffffn],
+ [-0x80000000n, 0x7ffffffffffffffen, -0x800000007ffffffen],
+ [-0x7fffffffn, 0x7ffffffffffffffen, -0x800000007ffffffdn],
+ [-0x7ffffffen, 0x7ffffffffffffffen, -0x800000007ffffffcn],
+ [-2n, 0x7ffffffffffffffen, -0x8000000000000000n],
+ [-1n, 0x7ffffffffffffffen, -0x7fffffffffffffffn],
+ [0n, 0x7ffffffffffffffen, -0x7ffffffffffffffen],
+ [1n, 0x7ffffffffffffffen, -0x7ffffffffffffffdn],
+ [2n, 0x7ffffffffffffffen, -0x7ffffffffffffffcn],
+ [0x7ffffffen, 0x7ffffffffffffffen, -0x7fffffff80000000n],
+ [0x7fffffffn, 0x7ffffffffffffffen, -0x7fffffff7fffffffn],
+ [0x80000000n, 0x7ffffffffffffffen, -0x7fffffff7ffffffen],
+ [0x80000001n, 0x7ffffffffffffffen, -0x7fffffff7ffffffdn],
+ [0xfffffffen, 0x7ffffffffffffffen, -0x7fffffff00000000n],
+ [0xffffffffn, 0x7ffffffffffffffen, -0x7ffffffeffffffffn],
+ [0x100000000n, 0x7ffffffffffffffen, -0x7ffffffefffffffen],
+ [0x100000001n, 0x7ffffffffffffffen, -0x7ffffffefffffffdn],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0n],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 1n],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 2n],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 3n],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 0x8000000000000000n],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 0x8000000000000001n],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 0x8000000000000002n],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 0x8000000000000003n],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, -0x18000000000000000n],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, -0x17fffffffffffffffn],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, -0x17ffffffffffffffen],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, -0x17ffffffffffffffdn],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, -0x10000000000000000n],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, -0xffffffffffffffffn],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, -0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, -0xfffffffffffffffdn],
+ [-0x100000001n, 0x7fffffffffffffffn, -0x8000000100000000n],
+ [-0x100000000n, 0x7fffffffffffffffn, -0x80000000ffffffffn],
+ [-0xffffffffn, 0x7fffffffffffffffn, -0x80000000fffffffen],
+ [-0xfffffffen, 0x7fffffffffffffffn, -0x80000000fffffffdn],
+ [-0x80000001n, 0x7fffffffffffffffn, -0x8000000080000000n],
+ [-0x80000000n, 0x7fffffffffffffffn, -0x800000007fffffffn],
+ [-0x7fffffffn, 0x7fffffffffffffffn, -0x800000007ffffffen],
+ [-0x7ffffffen, 0x7fffffffffffffffn, -0x800000007ffffffdn],
+ [-2n, 0x7fffffffffffffffn, -0x8000000000000001n],
+ [-1n, 0x7fffffffffffffffn, -0x8000000000000000n],
+ [0n, 0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [1n, 0x7fffffffffffffffn, -0x7ffffffffffffffen],
+ [2n, 0x7fffffffffffffffn, -0x7ffffffffffffffdn],
+ [0x7ffffffen, 0x7fffffffffffffffn, -0x7fffffff80000001n],
+ [0x7fffffffn, 0x7fffffffffffffffn, -0x7fffffff80000000n],
+ [0x80000000n, 0x7fffffffffffffffn, -0x7fffffff7fffffffn],
+ [0x80000001n, 0x7fffffffffffffffn, -0x7fffffff7ffffffen],
+ [0xfffffffen, 0x7fffffffffffffffn, -0x7fffffff00000001n],
+ [0xffffffffn, 0x7fffffffffffffffn, -0x7fffffff00000000n],
+ [0x100000000n, 0x7fffffffffffffffn, -0x7ffffffeffffffffn],
+ [0x100000001n, 0x7fffffffffffffffn, -0x7ffffffefffffffen],
+ [0x7ffffffffffffffen, 0x7fffffffffffffffn, -1n],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0n],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 1n],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 2n],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 0x8000000000000000n],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 0x8000000000000001n],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 0x8000000000000002n],
+ [-0x10000000000000001n, 0x8000000000000000n, -0x18000000000000001n],
+ [-0x10000000000000000n, 0x8000000000000000n, -0x18000000000000000n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, -0x17fffffffffffffffn],
+ [-0xfffffffffffffffen, 0x8000000000000000n, -0x17ffffffffffffffen],
+ [-0x8000000000000001n, 0x8000000000000000n, -0x10000000000000001n],
+ [-0x8000000000000000n, 0x8000000000000000n, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, -0xffffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, -0xfffffffffffffffen],
+ [-0x100000001n, 0x8000000000000000n, -0x8000000100000001n],
+ [-0x100000000n, 0x8000000000000000n, -0x8000000100000000n],
+ [-0xffffffffn, 0x8000000000000000n, -0x80000000ffffffffn],
+ [-0xfffffffen, 0x8000000000000000n, -0x80000000fffffffen],
+ [-0x80000001n, 0x8000000000000000n, -0x8000000080000001n],
+ [-0x80000000n, 0x8000000000000000n, -0x8000000080000000n],
+ [-0x7fffffffn, 0x8000000000000000n, -0x800000007fffffffn],
+ [-0x7ffffffen, 0x8000000000000000n, -0x800000007ffffffen],
+ [-2n, 0x8000000000000000n, -0x8000000000000002n],
+ [-1n, 0x8000000000000000n, -0x8000000000000001n],
+ [0n, 0x8000000000000000n, -0x8000000000000000n],
+ [1n, 0x8000000000000000n, -0x7fffffffffffffffn],
+ [2n, 0x8000000000000000n, -0x7ffffffffffffffen],
+ [0x7ffffffen, 0x8000000000000000n, -0x7fffffff80000002n],
+ [0x7fffffffn, 0x8000000000000000n, -0x7fffffff80000001n],
+ [0x80000000n, 0x8000000000000000n, -0x7fffffff80000000n],
+ [0x80000001n, 0x8000000000000000n, -0x7fffffff7fffffffn],
+ [0xfffffffen, 0x8000000000000000n, -0x7fffffff00000002n],
+ [0xffffffffn, 0x8000000000000000n, -0x7fffffff00000001n],
+ [0x100000000n, 0x8000000000000000n, -0x7fffffff00000000n],
+ [0x100000001n, 0x8000000000000000n, -0x7ffffffeffffffffn],
+ [0x7ffffffffffffffen, 0x8000000000000000n, -2n],
+ [0x7fffffffffffffffn, 0x8000000000000000n, -1n],
+ [0x8000000000000000n, 0x8000000000000000n, 0n],
+ [0x8000000000000001n, 0x8000000000000000n, 1n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, 0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, 0x8000000000000000n, 0x8000000000000000n],
+ [0x10000000000000001n, 0x8000000000000000n, 0x8000000000000001n],
+ [-0x10000000000000001n, 0x8000000000000001n, -0x18000000000000002n],
+ [-0x10000000000000000n, 0x8000000000000001n, -0x18000000000000001n],
+ [-0xffffffffffffffffn, 0x8000000000000001n, -0x18000000000000000n],
+ [-0xfffffffffffffffen, 0x8000000000000001n, -0x17fffffffffffffffn],
+ [-0x8000000000000001n, 0x8000000000000001n, -0x10000000000000002n],
+ [-0x8000000000000000n, 0x8000000000000001n, -0x10000000000000001n],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, -0x10000000000000000n],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, -0xffffffffffffffffn],
+ [-0x100000001n, 0x8000000000000001n, -0x8000000100000002n],
+ [-0x100000000n, 0x8000000000000001n, -0x8000000100000001n],
+ [-0xffffffffn, 0x8000000000000001n, -0x8000000100000000n],
+ [-0xfffffffen, 0x8000000000000001n, -0x80000000ffffffffn],
+ [-0x80000001n, 0x8000000000000001n, -0x8000000080000002n],
+ [-0x80000000n, 0x8000000000000001n, -0x8000000080000001n],
+ [-0x7fffffffn, 0x8000000000000001n, -0x8000000080000000n],
+ [-0x7ffffffen, 0x8000000000000001n, -0x800000007fffffffn],
+ [-2n, 0x8000000000000001n, -0x8000000000000003n],
+ [-1n, 0x8000000000000001n, -0x8000000000000002n],
+ [0n, 0x8000000000000001n, -0x8000000000000001n],
+ [1n, 0x8000000000000001n, -0x8000000000000000n],
+ [2n, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [0x7ffffffen, 0x8000000000000001n, -0x7fffffff80000003n],
+ [0x7fffffffn, 0x8000000000000001n, -0x7fffffff80000002n],
+ [0x80000000n, 0x8000000000000001n, -0x7fffffff80000001n],
+ [0x80000001n, 0x8000000000000001n, -0x7fffffff80000000n],
+ [0xfffffffen, 0x8000000000000001n, -0x7fffffff00000003n],
+ [0xffffffffn, 0x8000000000000001n, -0x7fffffff00000002n],
+ [0x100000000n, 0x8000000000000001n, -0x7fffffff00000001n],
+ [0x100000001n, 0x8000000000000001n, -0x7fffffff00000000n],
+ [0x7ffffffffffffffen, 0x8000000000000001n, -3n],
+ [0x7fffffffffffffffn, 0x8000000000000001n, -2n],
+ [0x8000000000000000n, 0x8000000000000001n, -1n],
+ [0x8000000000000001n, 0x8000000000000001n, 0n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 0x7ffffffffffffffdn],
+ [0xffffffffffffffffn, 0x8000000000000001n, 0x7ffffffffffffffen],
+ [0x10000000000000000n, 0x8000000000000001n, 0x7fffffffffffffffn],
+ [0x10000000000000001n, 0x8000000000000001n, 0x8000000000000000n],
+ [-0x10000000000000001n, -0x8000000000000001n, -0x8000000000000000n],
+ [-0x10000000000000000n, -0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, -0x8000000000000001n, -0x7ffffffffffffffen],
+ [-0xfffffffffffffffen, -0x8000000000000001n, -0x7ffffffffffffffdn],
+ [-0x8000000000000001n, -0x8000000000000001n, 0n],
+ [-0x8000000000000000n, -0x8000000000000001n, 1n],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, 2n],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, 3n],
+ [-0x100000001n, -0x8000000000000001n, 0x7fffffff00000000n],
+ [-0x100000000n, -0x8000000000000001n, 0x7fffffff00000001n],
+ [-0xffffffffn, -0x8000000000000001n, 0x7fffffff00000002n],
+ [-0xfffffffen, -0x8000000000000001n, 0x7fffffff00000003n],
+ [-0x80000001n, -0x8000000000000001n, 0x7fffffff80000000n],
+ [-0x80000000n, -0x8000000000000001n, 0x7fffffff80000001n],
+ [-0x7fffffffn, -0x8000000000000001n, 0x7fffffff80000002n],
+ [-0x7ffffffen, -0x8000000000000001n, 0x7fffffff80000003n],
+ [-2n, -0x8000000000000001n, 0x7fffffffffffffffn],
+ [-1n, -0x8000000000000001n, 0x8000000000000000n],
+ [0n, -0x8000000000000001n, 0x8000000000000001n],
+ [1n, -0x8000000000000001n, 0x8000000000000002n],
+ [2n, -0x8000000000000001n, 0x8000000000000003n],
+ [0x7ffffffen, -0x8000000000000001n, 0x800000007fffffffn],
+ [0x7fffffffn, -0x8000000000000001n, 0x8000000080000000n],
+ [0x80000000n, -0x8000000000000001n, 0x8000000080000001n],
+ [0x80000001n, -0x8000000000000001n, 0x8000000080000002n],
+ [0xfffffffen, -0x8000000000000001n, 0x80000000ffffffffn],
+ [0xffffffffn, -0x8000000000000001n, 0x8000000100000000n],
+ [0x100000000n, -0x8000000000000001n, 0x8000000100000001n],
+ [0x100000001n, -0x8000000000000001n, 0x8000000100000002n],
+ [0x7ffffffffffffffen, -0x8000000000000001n, 0xffffffffffffffffn],
+ [0x7fffffffffffffffn, -0x8000000000000001n, 0x10000000000000000n],
+ [0x8000000000000000n, -0x8000000000000001n, 0x10000000000000001n],
+ [0x8000000000000001n, -0x8000000000000001n, 0x10000000000000002n],
+ [0xfffffffffffffffen, -0x8000000000000001n, 0x17fffffffffffffffn],
+ [0xffffffffffffffffn, -0x8000000000000001n, 0x18000000000000000n],
+ [0x10000000000000000n, -0x8000000000000001n, 0x18000000000000001n],
+ [0x10000000000000001n, -0x8000000000000001n, 0x18000000000000002n],
+ [-0x10000000000000001n, -0x8000000000000000n, -0x8000000000000001n],
+ [-0x10000000000000000n, -0x8000000000000000n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, -0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x8000000000000001n, -0x8000000000000000n, -1n],
+ [-0x8000000000000000n, -0x8000000000000000n, 0n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, 1n],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, 2n],
+ [-0x100000001n, -0x8000000000000000n, 0x7ffffffeffffffffn],
+ [-0x100000000n, -0x8000000000000000n, 0x7fffffff00000000n],
+ [-0xffffffffn, -0x8000000000000000n, 0x7fffffff00000001n],
+ [-0xfffffffen, -0x8000000000000000n, 0x7fffffff00000002n],
+ [-0x80000001n, -0x8000000000000000n, 0x7fffffff7fffffffn],
+ [-0x80000000n, -0x8000000000000000n, 0x7fffffff80000000n],
+ [-0x7fffffffn, -0x8000000000000000n, 0x7fffffff80000001n],
+ [-0x7ffffffen, -0x8000000000000000n, 0x7fffffff80000002n],
+ [-2n, -0x8000000000000000n, 0x7ffffffffffffffen],
+ [-1n, -0x8000000000000000n, 0x7fffffffffffffffn],
+ [0n, -0x8000000000000000n, 0x8000000000000000n],
+ [1n, -0x8000000000000000n, 0x8000000000000001n],
+ [2n, -0x8000000000000000n, 0x8000000000000002n],
+ [0x7ffffffen, -0x8000000000000000n, 0x800000007ffffffen],
+ [0x7fffffffn, -0x8000000000000000n, 0x800000007fffffffn],
+ [0x80000000n, -0x8000000000000000n, 0x8000000080000000n],
+ [0x80000001n, -0x8000000000000000n, 0x8000000080000001n],
+ [0xfffffffen, -0x8000000000000000n, 0x80000000fffffffen],
+ [0xffffffffn, -0x8000000000000000n, 0x80000000ffffffffn],
+ [0x100000000n, -0x8000000000000000n, 0x8000000100000000n],
+ [0x100000001n, -0x8000000000000000n, 0x8000000100000001n],
+ [0x7ffffffffffffffen, -0x8000000000000000n, 0xfffffffffffffffen],
+ [0x7fffffffffffffffn, -0x8000000000000000n, 0xffffffffffffffffn],
+ [0x8000000000000000n, -0x8000000000000000n, 0x10000000000000000n],
+ [0x8000000000000001n, -0x8000000000000000n, 0x10000000000000001n],
+ [0xfffffffffffffffen, -0x8000000000000000n, 0x17ffffffffffffffen],
+ [0xffffffffffffffffn, -0x8000000000000000n, 0x17fffffffffffffffn],
+ [0x10000000000000000n, -0x8000000000000000n, 0x18000000000000000n],
+ [0x10000000000000001n, -0x8000000000000000n, 0x18000000000000001n],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, -0x8000000000000002n],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, -0x8000000000000001n],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, -0x8000000000000000n],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, -0x7fffffffffffffffn],
+ [-0x8000000000000001n, -0x7fffffffffffffffn, -2n],
+ [-0x8000000000000000n, -0x7fffffffffffffffn, -1n],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, 0n],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, 1n],
+ [-0x100000001n, -0x7fffffffffffffffn, 0x7ffffffefffffffen],
+ [-0x100000000n, -0x7fffffffffffffffn, 0x7ffffffeffffffffn],
+ [-0xffffffffn, -0x7fffffffffffffffn, 0x7fffffff00000000n],
+ [-0xfffffffen, -0x7fffffffffffffffn, 0x7fffffff00000001n],
+ [-0x80000001n, -0x7fffffffffffffffn, 0x7fffffff7ffffffen],
+ [-0x80000000n, -0x7fffffffffffffffn, 0x7fffffff7fffffffn],
+ [-0x7fffffffn, -0x7fffffffffffffffn, 0x7fffffff80000000n],
+ [-0x7ffffffen, -0x7fffffffffffffffn, 0x7fffffff80000001n],
+ [-2n, -0x7fffffffffffffffn, 0x7ffffffffffffffdn],
+ [-1n, -0x7fffffffffffffffn, 0x7ffffffffffffffen],
+ [0n, -0x7fffffffffffffffn, 0x7fffffffffffffffn],
+ [1n, -0x7fffffffffffffffn, 0x8000000000000000n],
+ [2n, -0x7fffffffffffffffn, 0x8000000000000001n],
+ [0x7ffffffen, -0x7fffffffffffffffn, 0x800000007ffffffdn],
+ [0x7fffffffn, -0x7fffffffffffffffn, 0x800000007ffffffen],
+ [0x80000000n, -0x7fffffffffffffffn, 0x800000007fffffffn],
+ [0x80000001n, -0x7fffffffffffffffn, 0x8000000080000000n],
+ [0xfffffffen, -0x7fffffffffffffffn, 0x80000000fffffffdn],
+ [0xffffffffn, -0x7fffffffffffffffn, 0x80000000fffffffen],
+ [0x100000000n, -0x7fffffffffffffffn, 0x80000000ffffffffn],
+ [0x100000001n, -0x7fffffffffffffffn, 0x8000000100000000n],
+ [0x7ffffffffffffffen, -0x7fffffffffffffffn, 0xfffffffffffffffdn],
+ [0x7fffffffffffffffn, -0x7fffffffffffffffn, 0xfffffffffffffffen],
+ [0x8000000000000000n, -0x7fffffffffffffffn, 0xffffffffffffffffn],
+ [0x8000000000000001n, -0x7fffffffffffffffn, 0x10000000000000000n],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, 0x17ffffffffffffffdn],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, 0x17ffffffffffffffen],
+ [0x10000000000000000n, -0x7fffffffffffffffn, 0x17fffffffffffffffn],
+ [0x10000000000000001n, -0x7fffffffffffffffn, 0x18000000000000000n],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, -0x8000000000000003n],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, -0x8000000000000002n],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, -0x8000000000000001n],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, -0x8000000000000000n],
+ [-0x8000000000000001n, -0x7ffffffffffffffen, -3n],
+ [-0x8000000000000000n, -0x7ffffffffffffffen, -2n],
+ [-0x7fffffffffffffffn, -0x7ffffffffffffffen, -1n],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, 0n],
+ [-0x100000001n, -0x7ffffffffffffffen, 0x7ffffffefffffffdn],
+ [-0x100000000n, -0x7ffffffffffffffen, 0x7ffffffefffffffen],
+ [-0xffffffffn, -0x7ffffffffffffffen, 0x7ffffffeffffffffn],
+ [-0xfffffffen, -0x7ffffffffffffffen, 0x7fffffff00000000n],
+ [-0x80000001n, -0x7ffffffffffffffen, 0x7fffffff7ffffffdn],
+ [-0x80000000n, -0x7ffffffffffffffen, 0x7fffffff7ffffffen],
+ [-0x7fffffffn, -0x7ffffffffffffffen, 0x7fffffff7fffffffn],
+ [-0x7ffffffen, -0x7ffffffffffffffen, 0x7fffffff80000000n],
+ [-2n, -0x7ffffffffffffffen, 0x7ffffffffffffffcn],
+ [-1n, -0x7ffffffffffffffen, 0x7ffffffffffffffdn],
+ [0n, -0x7ffffffffffffffen, 0x7ffffffffffffffen],
+ [1n, -0x7ffffffffffffffen, 0x7fffffffffffffffn],
+ [2n, -0x7ffffffffffffffen, 0x8000000000000000n],
+ [0x7ffffffen, -0x7ffffffffffffffen, 0x800000007ffffffcn],
+ [0x7fffffffn, -0x7ffffffffffffffen, 0x800000007ffffffdn],
+ [0x80000000n, -0x7ffffffffffffffen, 0x800000007ffffffen],
+ [0x80000001n, -0x7ffffffffffffffen, 0x800000007fffffffn],
+ [0xfffffffen, -0x7ffffffffffffffen, 0x80000000fffffffcn],
+ [0xffffffffn, -0x7ffffffffffffffen, 0x80000000fffffffdn],
+ [0x100000000n, -0x7ffffffffffffffen, 0x80000000fffffffen],
+ [0x100000001n, -0x7ffffffffffffffen, 0x80000000ffffffffn],
+ [0x7ffffffffffffffen, -0x7ffffffffffffffen, 0xfffffffffffffffcn],
+ [0x7fffffffffffffffn, -0x7ffffffffffffffen, 0xfffffffffffffffdn],
+ [0x8000000000000000n, -0x7ffffffffffffffen, 0xfffffffffffffffen],
+ [0x8000000000000001n, -0x7ffffffffffffffen, 0xffffffffffffffffn],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, 0x17ffffffffffffffcn],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, 0x17ffffffffffffffdn],
+ [0x10000000000000000n, -0x7ffffffffffffffen, 0x17ffffffffffffffen],
+ [0x10000000000000001n, -0x7ffffffffffffffen, 0x17fffffffffffffffn],
+ [-0x10000000000000001n, 0xfffffffffffffffen, -0x1ffffffffffffffffn],
+ [-0x10000000000000000n, 0xfffffffffffffffen, -0x1fffffffffffffffen],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, -0x1fffffffffffffffdn],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, -0x1fffffffffffffffcn],
+ [-0x8000000000000001n, 0xfffffffffffffffen, -0x17fffffffffffffffn],
+ [-0x8000000000000000n, 0xfffffffffffffffen, -0x17ffffffffffffffen],
+ [-0x7fffffffffffffffn, 0xfffffffffffffffen, -0x17ffffffffffffffdn],
+ [-0x7ffffffffffffffen, 0xfffffffffffffffen, -0x17ffffffffffffffcn],
+ [-0x100000001n, 0xfffffffffffffffen, -0x100000000ffffffffn],
+ [-0x100000000n, 0xfffffffffffffffen, -0x100000000fffffffen],
+ [-0xffffffffn, 0xfffffffffffffffen, -0x100000000fffffffdn],
+ [-0xfffffffen, 0xfffffffffffffffen, -0x100000000fffffffcn],
+ [-0x80000001n, 0xfffffffffffffffen, -0x1000000007fffffffn],
+ [-0x80000000n, 0xfffffffffffffffen, -0x1000000007ffffffen],
+ [-0x7fffffffn, 0xfffffffffffffffen, -0x1000000007ffffffdn],
+ [-0x7ffffffen, 0xfffffffffffffffen, -0x1000000007ffffffcn],
+ [-2n, 0xfffffffffffffffen, -0x10000000000000000n],
+ [-1n, 0xfffffffffffffffen, -0xffffffffffffffffn],
+ [0n, 0xfffffffffffffffen, -0xfffffffffffffffen],
+ [1n, 0xfffffffffffffffen, -0xfffffffffffffffdn],
+ [2n, 0xfffffffffffffffen, -0xfffffffffffffffcn],
+ [0x7ffffffen, 0xfffffffffffffffen, -0xffffffff80000000n],
+ [0x7fffffffn, 0xfffffffffffffffen, -0xffffffff7fffffffn],
+ [0x80000000n, 0xfffffffffffffffen, -0xffffffff7ffffffen],
+ [0x80000001n, 0xfffffffffffffffen, -0xffffffff7ffffffdn],
+ [0xfffffffen, 0xfffffffffffffffen, -0xffffffff00000000n],
+ [0xffffffffn, 0xfffffffffffffffen, -0xfffffffeffffffffn],
+ [0x100000000n, 0xfffffffffffffffen, -0xfffffffefffffffen],
+ [0x100000001n, 0xfffffffffffffffen, -0xfffffffefffffffdn],
+ [0x7ffffffffffffffen, 0xfffffffffffffffen, -0x8000000000000000n],
+ [0x7fffffffffffffffn, 0xfffffffffffffffen, -0x7fffffffffffffffn],
+ [0x8000000000000000n, 0xfffffffffffffffen, -0x7ffffffffffffffen],
+ [0x8000000000000001n, 0xfffffffffffffffen, -0x7ffffffffffffffdn],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 0n],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 1n],
+ [0x10000000000000000n, 0xfffffffffffffffen, 2n],
+ [0x10000000000000001n, 0xfffffffffffffffen, 3n],
+ [-0x10000000000000001n, 0xffffffffffffffffn, -0x20000000000000000n],
+ [-0x10000000000000000n, 0xffffffffffffffffn, -0x1ffffffffffffffffn],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, -0x1fffffffffffffffen],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, -0x1fffffffffffffffdn],
+ [-0x8000000000000001n, 0xffffffffffffffffn, -0x18000000000000000n],
+ [-0x8000000000000000n, 0xffffffffffffffffn, -0x17fffffffffffffffn],
+ [-0x7fffffffffffffffn, 0xffffffffffffffffn, -0x17ffffffffffffffen],
+ [-0x7ffffffffffffffen, 0xffffffffffffffffn, -0x17ffffffffffffffdn],
+ [-0x100000001n, 0xffffffffffffffffn, -0x10000000100000000n],
+ [-0x100000000n, 0xffffffffffffffffn, -0x100000000ffffffffn],
+ [-0xffffffffn, 0xffffffffffffffffn, -0x100000000fffffffen],
+ [-0xfffffffen, 0xffffffffffffffffn, -0x100000000fffffffdn],
+ [-0x80000001n, 0xffffffffffffffffn, -0x10000000080000000n],
+ [-0x80000000n, 0xffffffffffffffffn, -0x1000000007fffffffn],
+ [-0x7fffffffn, 0xffffffffffffffffn, -0x1000000007ffffffen],
+ [-0x7ffffffen, 0xffffffffffffffffn, -0x1000000007ffffffdn],
+ [-2n, 0xffffffffffffffffn, -0x10000000000000001n],
+ [-1n, 0xffffffffffffffffn, -0x10000000000000000n],
+ [0n, 0xffffffffffffffffn, -0xffffffffffffffffn],
+ [1n, 0xffffffffffffffffn, -0xfffffffffffffffen],
+ [2n, 0xffffffffffffffffn, -0xfffffffffffffffdn],
+ [0x7ffffffen, 0xffffffffffffffffn, -0xffffffff80000001n],
+ [0x7fffffffn, 0xffffffffffffffffn, -0xffffffff80000000n],
+ [0x80000000n, 0xffffffffffffffffn, -0xffffffff7fffffffn],
+ [0x80000001n, 0xffffffffffffffffn, -0xffffffff7ffffffen],
+ [0xfffffffen, 0xffffffffffffffffn, -0xffffffff00000001n],
+ [0xffffffffn, 0xffffffffffffffffn, -0xffffffff00000000n],
+ [0x100000000n, 0xffffffffffffffffn, -0xfffffffeffffffffn],
+ [0x100000001n, 0xffffffffffffffffn, -0xfffffffefffffffen],
+ [0x7ffffffffffffffen, 0xffffffffffffffffn, -0x8000000000000001n],
+ [0x7fffffffffffffffn, 0xffffffffffffffffn, -0x8000000000000000n],
+ [0x8000000000000000n, 0xffffffffffffffffn, -0x7fffffffffffffffn],
+ [0x8000000000000001n, 0xffffffffffffffffn, -0x7ffffffffffffffen],
+ [0xfffffffffffffffen, 0xffffffffffffffffn, -1n],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 0n],
+ [0x10000000000000000n, 0xffffffffffffffffn, 1n],
+ [0x10000000000000001n, 0xffffffffffffffffn, 2n],
+ [-0x10000000000000001n, 0x10000000000000000n, -0x20000000000000001n],
+ [-0x10000000000000000n, 0x10000000000000000n, -0x20000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, -0x1ffffffffffffffffn],
+ [-0xfffffffffffffffen, 0x10000000000000000n, -0x1fffffffffffffffen],
+ [-0x8000000000000001n, 0x10000000000000000n, -0x18000000000000001n],
+ [-0x8000000000000000n, 0x10000000000000000n, -0x18000000000000000n],
+ [-0x7fffffffffffffffn, 0x10000000000000000n, -0x17fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x10000000000000000n, -0x17ffffffffffffffen],
+ [-0x100000001n, 0x10000000000000000n, -0x10000000100000001n],
+ [-0x100000000n, 0x10000000000000000n, -0x10000000100000000n],
+ [-0xffffffffn, 0x10000000000000000n, -0x100000000ffffffffn],
+ [-0xfffffffen, 0x10000000000000000n, -0x100000000fffffffen],
+ [-0x80000001n, 0x10000000000000000n, -0x10000000080000001n],
+ [-0x80000000n, 0x10000000000000000n, -0x10000000080000000n],
+ [-0x7fffffffn, 0x10000000000000000n, -0x1000000007fffffffn],
+ [-0x7ffffffen, 0x10000000000000000n, -0x1000000007ffffffen],
+ [-2n, 0x10000000000000000n, -0x10000000000000002n],
+ [-1n, 0x10000000000000000n, -0x10000000000000001n],
+ [0n, 0x10000000000000000n, -0x10000000000000000n],
+ [1n, 0x10000000000000000n, -0xffffffffffffffffn],
+ [2n, 0x10000000000000000n, -0xfffffffffffffffen],
+ [0x7ffffffen, 0x10000000000000000n, -0xffffffff80000002n],
+ [0x7fffffffn, 0x10000000000000000n, -0xffffffff80000001n],
+ [0x80000000n, 0x10000000000000000n, -0xffffffff80000000n],
+ [0x80000001n, 0x10000000000000000n, -0xffffffff7fffffffn],
+ [0xfffffffen, 0x10000000000000000n, -0xffffffff00000002n],
+ [0xffffffffn, 0x10000000000000000n, -0xffffffff00000001n],
+ [0x100000000n, 0x10000000000000000n, -0xffffffff00000000n],
+ [0x100000001n, 0x10000000000000000n, -0xfffffffeffffffffn],
+ [0x7ffffffffffffffen, 0x10000000000000000n, -0x8000000000000002n],
+ [0x7fffffffffffffffn, 0x10000000000000000n, -0x8000000000000001n],
+ [0x8000000000000000n, 0x10000000000000000n, -0x8000000000000000n],
+ [0x8000000000000001n, 0x10000000000000000n, -0x7fffffffffffffffn],
+ [0xfffffffffffffffen, 0x10000000000000000n, -2n],
+ [0xffffffffffffffffn, 0x10000000000000000n, -1n],
+ [0x10000000000000000n, 0x10000000000000000n, 0n],
+ [0x10000000000000001n, 0x10000000000000000n, 1n],
+ [-0x10000000000000001n, 0x10000000000000001n, -0x20000000000000002n],
+ [-0x10000000000000000n, 0x10000000000000001n, -0x20000000000000001n],
+ [-0xffffffffffffffffn, 0x10000000000000001n, -0x20000000000000000n],
+ [-0xfffffffffffffffen, 0x10000000000000001n, -0x1ffffffffffffffffn],
+ [-0x8000000000000001n, 0x10000000000000001n, -0x18000000000000002n],
+ [-0x8000000000000000n, 0x10000000000000001n, -0x18000000000000001n],
+ [-0x7fffffffffffffffn, 0x10000000000000001n, -0x18000000000000000n],
+ [-0x7ffffffffffffffen, 0x10000000000000001n, -0x17fffffffffffffffn],
+ [-0x100000001n, 0x10000000000000001n, -0x10000000100000002n],
+ [-0x100000000n, 0x10000000000000001n, -0x10000000100000001n],
+ [-0xffffffffn, 0x10000000000000001n, -0x10000000100000000n],
+ [-0xfffffffen, 0x10000000000000001n, -0x100000000ffffffffn],
+ [-0x80000001n, 0x10000000000000001n, -0x10000000080000002n],
+ [-0x80000000n, 0x10000000000000001n, -0x10000000080000001n],
+ [-0x7fffffffn, 0x10000000000000001n, -0x10000000080000000n],
+ [-0x7ffffffen, 0x10000000000000001n, -0x1000000007fffffffn],
+ [-2n, 0x10000000000000001n, -0x10000000000000003n],
+ [-1n, 0x10000000000000001n, -0x10000000000000002n],
+ [0n, 0x10000000000000001n, -0x10000000000000001n],
+ [1n, 0x10000000000000001n, -0x10000000000000000n],
+ [2n, 0x10000000000000001n, -0xffffffffffffffffn],
+ [0x7ffffffen, 0x10000000000000001n, -0xffffffff80000003n],
+ [0x7fffffffn, 0x10000000000000001n, -0xffffffff80000002n],
+ [0x80000000n, 0x10000000000000001n, -0xffffffff80000001n],
+ [0x80000001n, 0x10000000000000001n, -0xffffffff80000000n],
+ [0xfffffffen, 0x10000000000000001n, -0xffffffff00000003n],
+ [0xffffffffn, 0x10000000000000001n, -0xffffffff00000002n],
+ [0x100000000n, 0x10000000000000001n, -0xffffffff00000001n],
+ [0x100000001n, 0x10000000000000001n, -0xffffffff00000000n],
+ [0x7ffffffffffffffen, 0x10000000000000001n, -0x8000000000000003n],
+ [0x7fffffffffffffffn, 0x10000000000000001n, -0x8000000000000002n],
+ [0x8000000000000000n, 0x10000000000000001n, -0x8000000000000001n],
+ [0x8000000000000001n, 0x10000000000000001n, -0x8000000000000000n],
+ [0xfffffffffffffffen, 0x10000000000000001n, -3n],
+ [0xffffffffffffffffn, 0x10000000000000001n, -2n],
+ [0x10000000000000000n, 0x10000000000000001n, -1n],
+ [0x10000000000000001n, 0x10000000000000001n, 0n],
+ [-0x10000000000000001n, -0x10000000000000001n, 0n],
+ [-0x10000000000000000n, -0x10000000000000001n, 1n],
+ [-0xffffffffffffffffn, -0x10000000000000001n, 2n],
+ [-0xfffffffffffffffen, -0x10000000000000001n, 3n],
+ [-0x8000000000000001n, -0x10000000000000001n, 0x8000000000000000n],
+ [-0x8000000000000000n, -0x10000000000000001n, 0x8000000000000001n],
+ [-0x7fffffffffffffffn, -0x10000000000000001n, 0x8000000000000002n],
+ [-0x7ffffffffffffffen, -0x10000000000000001n, 0x8000000000000003n],
+ [-0x100000001n, -0x10000000000000001n, 0xffffffff00000000n],
+ [-0x100000000n, -0x10000000000000001n, 0xffffffff00000001n],
+ [-0xffffffffn, -0x10000000000000001n, 0xffffffff00000002n],
+ [-0xfffffffen, -0x10000000000000001n, 0xffffffff00000003n],
+ [-0x80000001n, -0x10000000000000001n, 0xffffffff80000000n],
+ [-0x80000000n, -0x10000000000000001n, 0xffffffff80000001n],
+ [-0x7fffffffn, -0x10000000000000001n, 0xffffffff80000002n],
+ [-0x7ffffffen, -0x10000000000000001n, 0xffffffff80000003n],
+ [-2n, -0x10000000000000001n, 0xffffffffffffffffn],
+ [-1n, -0x10000000000000001n, 0x10000000000000000n],
+ [0n, -0x10000000000000001n, 0x10000000000000001n],
+ [1n, -0x10000000000000001n, 0x10000000000000002n],
+ [2n, -0x10000000000000001n, 0x10000000000000003n],
+ [0x7ffffffen, -0x10000000000000001n, 0x1000000007fffffffn],
+ [0x7fffffffn, -0x10000000000000001n, 0x10000000080000000n],
+ [0x80000000n, -0x10000000000000001n, 0x10000000080000001n],
+ [0x80000001n, -0x10000000000000001n, 0x10000000080000002n],
+ [0xfffffffen, -0x10000000000000001n, 0x100000000ffffffffn],
+ [0xffffffffn, -0x10000000000000001n, 0x10000000100000000n],
+ [0x100000000n, -0x10000000000000001n, 0x10000000100000001n],
+ [0x100000001n, -0x10000000000000001n, 0x10000000100000002n],
+ [0x7ffffffffffffffen, -0x10000000000000001n, 0x17fffffffffffffffn],
+ [0x7fffffffffffffffn, -0x10000000000000001n, 0x18000000000000000n],
+ [0x8000000000000000n, -0x10000000000000001n, 0x18000000000000001n],
+ [0x8000000000000001n, -0x10000000000000001n, 0x18000000000000002n],
+ [0xfffffffffffffffen, -0x10000000000000001n, 0x1ffffffffffffffffn],
+ [0xffffffffffffffffn, -0x10000000000000001n, 0x20000000000000000n],
+ [0x10000000000000000n, -0x10000000000000001n, 0x20000000000000001n],
+ [0x10000000000000001n, -0x10000000000000001n, 0x20000000000000002n],
+ [-0x10000000000000001n, -0x10000000000000000n, -1n],
+ [-0x10000000000000000n, -0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, 1n],
+ [-0xfffffffffffffffen, -0x10000000000000000n, 2n],
+ [-0x8000000000000001n, -0x10000000000000000n, 0x7fffffffffffffffn],
+ [-0x8000000000000000n, -0x10000000000000000n, 0x8000000000000000n],
+ [-0x7fffffffffffffffn, -0x10000000000000000n, 0x8000000000000001n],
+ [-0x7ffffffffffffffen, -0x10000000000000000n, 0x8000000000000002n],
+ [-0x100000001n, -0x10000000000000000n, 0xfffffffeffffffffn],
+ [-0x100000000n, -0x10000000000000000n, 0xffffffff00000000n],
+ [-0xffffffffn, -0x10000000000000000n, 0xffffffff00000001n],
+ [-0xfffffffen, -0x10000000000000000n, 0xffffffff00000002n],
+ [-0x80000001n, -0x10000000000000000n, 0xffffffff7fffffffn],
+ [-0x80000000n, -0x10000000000000000n, 0xffffffff80000000n],
+ [-0x7fffffffn, -0x10000000000000000n, 0xffffffff80000001n],
+ [-0x7ffffffen, -0x10000000000000000n, 0xffffffff80000002n],
+ [-2n, -0x10000000000000000n, 0xfffffffffffffffen],
+ [-1n, -0x10000000000000000n, 0xffffffffffffffffn],
+ [0n, -0x10000000000000000n, 0x10000000000000000n],
+ [1n, -0x10000000000000000n, 0x10000000000000001n],
+ [2n, -0x10000000000000000n, 0x10000000000000002n],
+ [0x7ffffffen, -0x10000000000000000n, 0x1000000007ffffffen],
+ [0x7fffffffn, -0x10000000000000000n, 0x1000000007fffffffn],
+ [0x80000000n, -0x10000000000000000n, 0x10000000080000000n],
+ [0x80000001n, -0x10000000000000000n, 0x10000000080000001n],
+ [0xfffffffen, -0x10000000000000000n, 0x100000000fffffffen],
+ [0xffffffffn, -0x10000000000000000n, 0x100000000ffffffffn],
+ [0x100000000n, -0x10000000000000000n, 0x10000000100000000n],
+ [0x100000001n, -0x10000000000000000n, 0x10000000100000001n],
+ [0x7ffffffffffffffen, -0x10000000000000000n, 0x17ffffffffffffffen],
+ [0x7fffffffffffffffn, -0x10000000000000000n, 0x17fffffffffffffffn],
+ [0x8000000000000000n, -0x10000000000000000n, 0x18000000000000000n],
+ [0x8000000000000001n, -0x10000000000000000n, 0x18000000000000001n],
+ [0xfffffffffffffffen, -0x10000000000000000n, 0x1fffffffffffffffen],
+ [0xffffffffffffffffn, -0x10000000000000000n, 0x1ffffffffffffffffn],
+ [0x10000000000000000n, -0x10000000000000000n, 0x20000000000000000n],
+ [0x10000000000000001n, -0x10000000000000000n, 0x20000000000000001n],
+ [-0x10000000000000001n, -0xffffffffffffffffn, -2n],
+ [-0x10000000000000000n, -0xffffffffffffffffn, -1n],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, 0n],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, 1n],
+ [-0x8000000000000001n, -0xffffffffffffffffn, 0x7ffffffffffffffen],
+ [-0x8000000000000000n, -0xffffffffffffffffn, 0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, -0xffffffffffffffffn, 0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0xffffffffffffffffn, 0x8000000000000001n],
+ [-0x100000001n, -0xffffffffffffffffn, 0xfffffffefffffffen],
+ [-0x100000000n, -0xffffffffffffffffn, 0xfffffffeffffffffn],
+ [-0xffffffffn, -0xffffffffffffffffn, 0xffffffff00000000n],
+ [-0xfffffffen, -0xffffffffffffffffn, 0xffffffff00000001n],
+ [-0x80000001n, -0xffffffffffffffffn, 0xffffffff7ffffffen],
+ [-0x80000000n, -0xffffffffffffffffn, 0xffffffff7fffffffn],
+ [-0x7fffffffn, -0xffffffffffffffffn, 0xffffffff80000000n],
+ [-0x7ffffffen, -0xffffffffffffffffn, 0xffffffff80000001n],
+ [-2n, -0xffffffffffffffffn, 0xfffffffffffffffdn],
+ [-1n, -0xffffffffffffffffn, 0xfffffffffffffffen],
+ [0n, -0xffffffffffffffffn, 0xffffffffffffffffn],
+ [1n, -0xffffffffffffffffn, 0x10000000000000000n],
+ [2n, -0xffffffffffffffffn, 0x10000000000000001n],
+ [0x7ffffffen, -0xffffffffffffffffn, 0x1000000007ffffffdn],
+ [0x7fffffffn, -0xffffffffffffffffn, 0x1000000007ffffffen],
+ [0x80000000n, -0xffffffffffffffffn, 0x1000000007fffffffn],
+ [0x80000001n, -0xffffffffffffffffn, 0x10000000080000000n],
+ [0xfffffffen, -0xffffffffffffffffn, 0x100000000fffffffdn],
+ [0xffffffffn, -0xffffffffffffffffn, 0x100000000fffffffen],
+ [0x100000000n, -0xffffffffffffffffn, 0x100000000ffffffffn],
+ [0x100000001n, -0xffffffffffffffffn, 0x10000000100000000n],
+ [0x7ffffffffffffffen, -0xffffffffffffffffn, 0x17ffffffffffffffdn],
+ [0x7fffffffffffffffn, -0xffffffffffffffffn, 0x17ffffffffffffffen],
+ [0x8000000000000000n, -0xffffffffffffffffn, 0x17fffffffffffffffn],
+ [0x8000000000000001n, -0xffffffffffffffffn, 0x18000000000000000n],
+ [0xfffffffffffffffen, -0xffffffffffffffffn, 0x1fffffffffffffffdn],
+ [0xffffffffffffffffn, -0xffffffffffffffffn, 0x1fffffffffffffffen],
+ [0x10000000000000000n, -0xffffffffffffffffn, 0x1ffffffffffffffffn],
+ [0x10000000000000001n, -0xffffffffffffffffn, 0x20000000000000000n],
+ [-0x10000000000000001n, -0xfffffffffffffffen, -3n],
+ [-0x10000000000000000n, -0xfffffffffffffffen, -2n],
+ [-0xffffffffffffffffn, -0xfffffffffffffffen, -1n],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, 0n],
+ [-0x8000000000000001n, -0xfffffffffffffffen, 0x7ffffffffffffffdn],
+ [-0x8000000000000000n, -0xfffffffffffffffen, 0x7ffffffffffffffen],
+ [-0x7fffffffffffffffn, -0xfffffffffffffffen, 0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -0xfffffffffffffffen, 0x8000000000000000n],
+ [-0x100000001n, -0xfffffffffffffffen, 0xfffffffefffffffdn],
+ [-0x100000000n, -0xfffffffffffffffen, 0xfffffffefffffffen],
+ [-0xffffffffn, -0xfffffffffffffffen, 0xfffffffeffffffffn],
+ [-0xfffffffen, -0xfffffffffffffffen, 0xffffffff00000000n],
+ [-0x80000001n, -0xfffffffffffffffen, 0xffffffff7ffffffdn],
+ [-0x80000000n, -0xfffffffffffffffen, 0xffffffff7ffffffen],
+ [-0x7fffffffn, -0xfffffffffffffffen, 0xffffffff7fffffffn],
+ [-0x7ffffffen, -0xfffffffffffffffen, 0xffffffff80000000n],
+ [-2n, -0xfffffffffffffffen, 0xfffffffffffffffcn],
+ [-1n, -0xfffffffffffffffen, 0xfffffffffffffffdn],
+ [0n, -0xfffffffffffffffen, 0xfffffffffffffffen],
+ [1n, -0xfffffffffffffffen, 0xffffffffffffffffn],
+ [2n, -0xfffffffffffffffen, 0x10000000000000000n],
+ [0x7ffffffen, -0xfffffffffffffffen, 0x1000000007ffffffcn],
+ [0x7fffffffn, -0xfffffffffffffffen, 0x1000000007ffffffdn],
+ [0x80000000n, -0xfffffffffffffffen, 0x1000000007ffffffen],
+ [0x80000001n, -0xfffffffffffffffen, 0x1000000007fffffffn],
+ [0xfffffffen, -0xfffffffffffffffen, 0x100000000fffffffcn],
+ [0xffffffffn, -0xfffffffffffffffen, 0x100000000fffffffdn],
+ [0x100000000n, -0xfffffffffffffffen, 0x100000000fffffffen],
+ [0x100000001n, -0xfffffffffffffffen, 0x100000000ffffffffn],
+ [0x7ffffffffffffffen, -0xfffffffffffffffen, 0x17ffffffffffffffcn],
+ [0x7fffffffffffffffn, -0xfffffffffffffffen, 0x17ffffffffffffffdn],
+ [0x8000000000000000n, -0xfffffffffffffffen, 0x17ffffffffffffffen],
+ [0x8000000000000001n, -0xfffffffffffffffen, 0x17fffffffffffffffn],
+ [0xfffffffffffffffen, -0xfffffffffffffffen, 0x1fffffffffffffffcn],
+ [0xffffffffffffffffn, -0xfffffffffffffffen, 0x1fffffffffffffffdn],
+ [0x10000000000000000n, -0xfffffffffffffffen, 0x1fffffffffffffffen],
+ [0x10000000000000001n, -0xfffffffffffffffen, 0x1ffffffffffffffffn],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs - rhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bigint-xor.js b/js/src/jit-test/tests/bigint/bigint-xor.js
new file mode 100644
index 0000000000..38b13ce3ae
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bigint-xor.js
@@ -0,0 +1,718 @@
+const tests = [
+ [-0x10000000000000001n, -2n, 0x10000000000000001n],
+ [-0x10000000000000000n, -2n, 0xfffffffffffffffen],
+ [-0xffffffffffffffffn, -2n, 0xffffffffffffffffn],
+ [-0xfffffffffffffffen, -2n, 0xfffffffffffffffcn],
+ [-0x8000000000000001n, -2n, 0x8000000000000001n],
+ [-0x8000000000000000n, -2n, 0x7ffffffffffffffen],
+ [-0x7fffffffffffffffn, -2n, 0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, -2n, 0x7ffffffffffffffcn],
+ [-0x100000001n, -2n, 0x100000001n],
+ [-0x100000000n, -2n, 0xfffffffen],
+ [-0xffffffffn, -2n, 0xffffffffn],
+ [-0xfffffffen, -2n, 0xfffffffcn],
+ [-0x80000001n, -2n, 0x80000001n],
+ [-0x80000000n, -2n, 0x7ffffffen],
+ [-0x7fffffffn, -2n, 0x7fffffffn],
+ [-0x7ffffffen, -2n, 0x7ffffffcn],
+ [-2n, -2n, 0n],
+ [-1n, -2n, 1n],
+ [0n, -2n, -2n],
+ [1n, -2n, -1n],
+ [2n, -2n, -4n],
+ [0x7ffffffen, -2n, -0x80000000n],
+ [0x7fffffffn, -2n, -0x7fffffffn],
+ [0x80000000n, -2n, -0x80000002n],
+ [0x80000001n, -2n, -0x80000001n],
+ [0xfffffffen, -2n, -0x100000000n],
+ [0xffffffffn, -2n, -0xffffffffn],
+ [0x100000000n, -2n, -0x100000002n],
+ [0x100000001n, -2n, -0x100000001n],
+ [0x7ffffffffffffffen, -2n, -0x8000000000000000n],
+ [0x7fffffffffffffffn, -2n, -0x7fffffffffffffffn],
+ [0x8000000000000000n, -2n, -0x8000000000000002n],
+ [0x8000000000000001n, -2n, -0x8000000000000001n],
+ [0xfffffffffffffffen, -2n, -0x10000000000000000n],
+ [0xffffffffffffffffn, -2n, -0xffffffffffffffffn],
+ [0x10000000000000000n, -2n, -0x10000000000000002n],
+ [0x10000000000000001n, -2n, -0x10000000000000001n],
+ [-0x10000000000000001n, -1n, 0x10000000000000000n],
+ [-0x10000000000000000n, -1n, 0xffffffffffffffffn],
+ [-0xffffffffffffffffn, -1n, 0xfffffffffffffffen],
+ [-0xfffffffffffffffen, -1n, 0xfffffffffffffffdn],
+ [-0x8000000000000001n, -1n, 0x8000000000000000n],
+ [-0x8000000000000000n, -1n, 0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, -1n, 0x7ffffffffffffffen],
+ [-0x7ffffffffffffffen, -1n, 0x7ffffffffffffffdn],
+ [-0x100000001n, -1n, 0x100000000n],
+ [-0x100000000n, -1n, 0xffffffffn],
+ [-0xffffffffn, -1n, 0xfffffffen],
+ [-0xfffffffen, -1n, 0xfffffffdn],
+ [-0x80000001n, -1n, 0x80000000n],
+ [-0x80000000n, -1n, 0x7fffffffn],
+ [-0x7fffffffn, -1n, 0x7ffffffen],
+ [-0x7ffffffen, -1n, 0x7ffffffdn],
+ [-1n, -1n, 0n],
+ [0n, -1n, -1n],
+ [1n, -1n, -2n],
+ [2n, -1n, -3n],
+ [0x7ffffffen, -1n, -0x7fffffffn],
+ [0x7fffffffn, -1n, -0x80000000n],
+ [0x80000000n, -1n, -0x80000001n],
+ [0x80000001n, -1n, -0x80000002n],
+ [0xfffffffen, -1n, -0xffffffffn],
+ [0xffffffffn, -1n, -0x100000000n],
+ [0x100000000n, -1n, -0x100000001n],
+ [0x100000001n, -1n, -0x100000002n],
+ [0x7ffffffffffffffen, -1n, -0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, -1n, -0x8000000000000000n],
+ [0x8000000000000000n, -1n, -0x8000000000000001n],
+ [0x8000000000000001n, -1n, -0x8000000000000002n],
+ [0xfffffffffffffffen, -1n, -0xffffffffffffffffn],
+ [0xffffffffffffffffn, -1n, -0x10000000000000000n],
+ [0x10000000000000000n, -1n, -0x10000000000000001n],
+ [0x10000000000000001n, -1n, -0x10000000000000002n],
+ [-0x10000000000000001n, 0n, -0x10000000000000001n],
+ [-0x10000000000000000n, 0n, -0x10000000000000000n],
+ [-0xffffffffffffffffn, 0n, -0xffffffffffffffffn],
+ [-0xfffffffffffffffen, 0n, -0xfffffffffffffffen],
+ [-0x8000000000000001n, 0n, -0x8000000000000001n],
+ [-0x8000000000000000n, 0n, -0x8000000000000000n],
+ [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn],
+ [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen],
+ [-0x100000001n, 0n, -0x100000001n],
+ [-0x100000000n, 0n, -0x100000000n],
+ [-0xffffffffn, 0n, -0xffffffffn],
+ [-0xfffffffen, 0n, -0xfffffffen],
+ [-0x80000001n, 0n, -0x80000001n],
+ [-0x80000000n, 0n, -0x80000000n],
+ [-0x7fffffffn, 0n, -0x7fffffffn],
+ [-0x7ffffffen, 0n, -0x7ffffffen],
+ [0n, 0n, 0n],
+ [1n, 0n, 1n],
+ [2n, 0n, 2n],
+ [0x7ffffffen, 0n, 0x7ffffffen],
+ [0x7fffffffn, 0n, 0x7fffffffn],
+ [0x80000000n, 0n, 0x80000000n],
+ [0x80000001n, 0n, 0x80000001n],
+ [0xfffffffen, 0n, 0xfffffffen],
+ [0xffffffffn, 0n, 0xffffffffn],
+ [0x100000000n, 0n, 0x100000000n],
+ [0x100000001n, 0n, 0x100000001n],
+ [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen],
+ [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn],
+ [0x8000000000000000n, 0n, 0x8000000000000000n],
+ [0x8000000000000001n, 0n, 0x8000000000000001n],
+ [0xfffffffffffffffen, 0n, 0xfffffffffffffffen],
+ [0xffffffffffffffffn, 0n, 0xffffffffffffffffn],
+ [0x10000000000000000n, 0n, 0x10000000000000000n],
+ [0x10000000000000001n, 0n, 0x10000000000000001n],
+ [-0x10000000000000001n, 1n, -0x10000000000000002n],
+ [-0x10000000000000000n, 1n, -0xffffffffffffffffn],
+ [-0xffffffffffffffffn, 1n, -0x10000000000000000n],
+ [-0xfffffffffffffffen, 1n, -0xfffffffffffffffdn],
+ [-0x8000000000000001n, 1n, -0x8000000000000002n],
+ [-0x8000000000000000n, 1n, -0x7fffffffffffffffn],
+ [-0x7fffffffffffffffn, 1n, -0x8000000000000000n],
+ [-0x7ffffffffffffffen, 1n, -0x7ffffffffffffffdn],
+ [-0x100000001n, 1n, -0x100000002n],
+ [-0x100000000n, 1n, -0xffffffffn],
+ [-0xffffffffn, 1n, -0x100000000n],
+ [-0xfffffffen, 1n, -0xfffffffdn],
+ [-0x80000001n, 1n, -0x80000002n],
+ [-0x80000000n, 1n, -0x7fffffffn],
+ [-0x7fffffffn, 1n, -0x80000000n],
+ [-0x7ffffffen, 1n, -0x7ffffffdn],
+ [1n, 1n, 0n],
+ [2n, 1n, 3n],
+ [0x7ffffffen, 1n, 0x7fffffffn],
+ [0x7fffffffn, 1n, 0x7ffffffen],
+ [0x80000000n, 1n, 0x80000001n],
+ [0x80000001n, 1n, 0x80000000n],
+ [0xfffffffen, 1n, 0xffffffffn],
+ [0xffffffffn, 1n, 0xfffffffen],
+ [0x100000000n, 1n, 0x100000001n],
+ [0x100000001n, 1n, 0x100000000n],
+ [0x7ffffffffffffffen, 1n, 0x7fffffffffffffffn],
+ [0x7fffffffffffffffn, 1n, 0x7ffffffffffffffen],
+ [0x8000000000000000n, 1n, 0x8000000000000001n],
+ [0x8000000000000001n, 1n, 0x8000000000000000n],
+ [0xfffffffffffffffen, 1n, 0xffffffffffffffffn],
+ [0xffffffffffffffffn, 1n, 0xfffffffffffffffen],
+ [0x10000000000000000n, 1n, 0x10000000000000001n],
+ [0x10000000000000001n, 1n, 0x10000000000000000n],
+ [-0x10000000000000001n, 2n, -0x10000000000000003n],
+ [-0x10000000000000000n, 2n, -0xfffffffffffffffen],
+ [-0xffffffffffffffffn, 2n, -0xfffffffffffffffdn],
+ [-0xfffffffffffffffen, 2n, -0x10000000000000000n],
+ [-0x8000000000000001n, 2n, -0x8000000000000003n],
+ [-0x8000000000000000n, 2n, -0x7ffffffffffffffen],
+ [-0x7fffffffffffffffn, 2n, -0x7ffffffffffffffdn],
+ [-0x7ffffffffffffffen, 2n, -0x8000000000000000n],
+ [-0x100000001n, 2n, -0x100000003n],
+ [-0x100000000n, 2n, -0xfffffffen],
+ [-0xffffffffn, 2n, -0xfffffffdn],
+ [-0xfffffffen, 2n, -0x100000000n],
+ [-0x80000001n, 2n, -0x80000003n],
+ [-0x80000000n, 2n, -0x7ffffffen],
+ [-0x7fffffffn, 2n, -0x7ffffffdn],
+ [-0x7ffffffen, 2n, -0x80000000n],
+ [2n, 2n, 0n],
+ [0x7ffffffen, 2n, 0x7ffffffcn],
+ [0x7fffffffn, 2n, 0x7ffffffdn],
+ [0x80000000n, 2n, 0x80000002n],
+ [0x80000001n, 2n, 0x80000003n],
+ [0xfffffffen, 2n, 0xfffffffcn],
+ [0xffffffffn, 2n, 0xfffffffdn],
+ [0x100000000n, 2n, 0x100000002n],
+ [0x100000001n, 2n, 0x100000003n],
+ [0x7ffffffffffffffen, 2n, 0x7ffffffffffffffcn],
+ [0x7fffffffffffffffn, 2n, 0x7ffffffffffffffdn],
+ [0x8000000000000000n, 2n, 0x8000000000000002n],
+ [0x8000000000000001n, 2n, 0x8000000000000003n],
+ [0xfffffffffffffffen, 2n, 0xfffffffffffffffcn],
+ [0xffffffffffffffffn, 2n, 0xfffffffffffffffdn],
+ [0x10000000000000000n, 2n, 0x10000000000000002n],
+ [0x10000000000000001n, 2n, 0x10000000000000003n],
+ [-0x10000000000000001n, 0x7ffffffen, -0x1000000007fffffffn],
+ [-0x10000000000000000n, 0x7ffffffen, -0xffffffff80000002n],
+ [-0xffffffffffffffffn, 0x7ffffffen, -0xffffffff80000001n],
+ [-0xfffffffffffffffen, 0x7ffffffen, -0xffffffff80000004n],
+ [-0x8000000000000001n, 0x7ffffffen, -0x800000007fffffffn],
+ [-0x8000000000000000n, 0x7ffffffen, -0x7fffffff80000002n],
+ [-0x7fffffffffffffffn, 0x7ffffffen, -0x7fffffff80000001n],
+ [-0x7ffffffffffffffen, 0x7ffffffen, -0x7fffffff80000004n],
+ [-0x100000001n, 0x7ffffffen, -0x17fffffffn],
+ [-0x100000000n, 0x7ffffffen, -0x80000002n],
+ [-0xffffffffn, 0x7ffffffen, -0x80000001n],
+ [-0xfffffffen, 0x7ffffffen, -0x80000004n],
+ [-0x80000001n, 0x7ffffffen, -0xffffffffn],
+ [-0x80000000n, 0x7ffffffen, -2n],
+ [-0x7fffffffn, 0x7ffffffen, -1n],
+ [-0x7ffffffen, 0x7ffffffen, -4n],
+ [0x7ffffffen, 0x7ffffffen, 0n],
+ [0x7fffffffn, 0x7ffffffen, 1n],
+ [0x80000000n, 0x7ffffffen, 0xfffffffen],
+ [0x80000001n, 0x7ffffffen, 0xffffffffn],
+ [0xfffffffen, 0x7ffffffen, 0x80000000n],
+ [0xffffffffn, 0x7ffffffen, 0x80000001n],
+ [0x100000000n, 0x7ffffffen, 0x17ffffffen],
+ [0x100000001n, 0x7ffffffen, 0x17fffffffn],
+ [0x7ffffffffffffffen, 0x7ffffffen, 0x7fffffff80000000n],
+ [0x7fffffffffffffffn, 0x7ffffffen, 0x7fffffff80000001n],
+ [0x8000000000000000n, 0x7ffffffen, 0x800000007ffffffen],
+ [0x8000000000000001n, 0x7ffffffen, 0x800000007fffffffn],
+ [0xfffffffffffffffen, 0x7ffffffen, 0xffffffff80000000n],
+ [0xffffffffffffffffn, 0x7ffffffen, 0xffffffff80000001n],
+ [0x10000000000000000n, 0x7ffffffen, 0x1000000007ffffffen],
+ [0x10000000000000001n, 0x7ffffffen, 0x1000000007fffffffn],
+ [-0x10000000000000001n, 0x7fffffffn, -0x10000000080000000n],
+ [-0x10000000000000000n, 0x7fffffffn, -0xffffffff80000001n],
+ [-0xffffffffffffffffn, 0x7fffffffn, -0xffffffff80000002n],
+ [-0xfffffffffffffffen, 0x7fffffffn, -0xffffffff80000003n],
+ [-0x8000000000000001n, 0x7fffffffn, -0x8000000080000000n],
+ [-0x8000000000000000n, 0x7fffffffn, -0x7fffffff80000001n],
+ [-0x7fffffffffffffffn, 0x7fffffffn, -0x7fffffff80000002n],
+ [-0x7ffffffffffffffen, 0x7fffffffn, -0x7fffffff80000003n],
+ [-0x100000001n, 0x7fffffffn, -0x180000000n],
+ [-0x100000000n, 0x7fffffffn, -0x80000001n],
+ [-0xffffffffn, 0x7fffffffn, -0x80000002n],
+ [-0xfffffffen, 0x7fffffffn, -0x80000003n],
+ [-0x80000001n, 0x7fffffffn, -0x100000000n],
+ [-0x80000000n, 0x7fffffffn, -1n],
+ [-0x7fffffffn, 0x7fffffffn, -2n],
+ [-0x7ffffffen, 0x7fffffffn, -3n],
+ [0x7fffffffn, 0x7fffffffn, 0n],
+ [0x80000000n, 0x7fffffffn, 0xffffffffn],
+ [0x80000001n, 0x7fffffffn, 0xfffffffen],
+ [0xfffffffen, 0x7fffffffn, 0x80000001n],
+ [0xffffffffn, 0x7fffffffn, 0x80000000n],
+ [0x100000000n, 0x7fffffffn, 0x17fffffffn],
+ [0x100000001n, 0x7fffffffn, 0x17ffffffen],
+ [0x7ffffffffffffffen, 0x7fffffffn, 0x7fffffff80000001n],
+ [0x7fffffffffffffffn, 0x7fffffffn, 0x7fffffff80000000n],
+ [0x8000000000000000n, 0x7fffffffn, 0x800000007fffffffn],
+ [0x8000000000000001n, 0x7fffffffn, 0x800000007ffffffen],
+ [0xfffffffffffffffen, 0x7fffffffn, 0xffffffff80000001n],
+ [0xffffffffffffffffn, 0x7fffffffn, 0xffffffff80000000n],
+ [0x10000000000000000n, 0x7fffffffn, 0x1000000007fffffffn],
+ [0x10000000000000001n, 0x7fffffffn, 0x1000000007ffffffen],
+ [-0x10000000000000001n, 0x80000000n, -0x10000000080000001n],
+ [-0x10000000000000000n, 0x80000000n, -0xffffffff80000000n],
+ [-0xffffffffffffffffn, 0x80000000n, -0xffffffff7fffffffn],
+ [-0xfffffffffffffffen, 0x80000000n, -0xffffffff7ffffffen],
+ [-0x8000000000000001n, 0x80000000n, -0x8000000080000001n],
+ [-0x8000000000000000n, 0x80000000n, -0x7fffffff80000000n],
+ [-0x7fffffffffffffffn, 0x80000000n, -0x7fffffff7fffffffn],
+ [-0x7ffffffffffffffen, 0x80000000n, -0x7fffffff7ffffffen],
+ [-0x100000001n, 0x80000000n, -0x180000001n],
+ [-0x100000000n, 0x80000000n, -0x80000000n],
+ [-0xffffffffn, 0x80000000n, -0x7fffffffn],
+ [-0xfffffffen, 0x80000000n, -0x7ffffffen],
+ [-0x80000001n, 0x80000000n, -1n],
+ [-0x80000000n, 0x80000000n, -0x100000000n],
+ [-0x7fffffffn, 0x80000000n, -0xffffffffn],
+ [-0x7ffffffen, 0x80000000n, -0xfffffffen],
+ [0x80000000n, 0x80000000n, 0n],
+ [0x80000001n, 0x80000000n, 1n],
+ [0xfffffffen, 0x80000000n, 0x7ffffffen],
+ [0xffffffffn, 0x80000000n, 0x7fffffffn],
+ [0x100000000n, 0x80000000n, 0x180000000n],
+ [0x100000001n, 0x80000000n, 0x180000001n],
+ [0x7ffffffffffffffen, 0x80000000n, 0x7fffffff7ffffffen],
+ [0x7fffffffffffffffn, 0x80000000n, 0x7fffffff7fffffffn],
+ [0x8000000000000000n, 0x80000000n, 0x8000000080000000n],
+ [0x8000000000000001n, 0x80000000n, 0x8000000080000001n],
+ [0xfffffffffffffffen, 0x80000000n, 0xffffffff7ffffffen],
+ [0xffffffffffffffffn, 0x80000000n, 0xffffffff7fffffffn],
+ [0x10000000000000000n, 0x80000000n, 0x10000000080000000n],
+ [0x10000000000000001n, 0x80000000n, 0x10000000080000001n],
+ [-0x10000000000000001n, 0x80000001n, -0x10000000080000002n],
+ [-0x10000000000000000n, 0x80000001n, -0xffffffff7fffffffn],
+ [-0xffffffffffffffffn, 0x80000001n, -0xffffffff80000000n],
+ [-0xfffffffffffffffen, 0x80000001n, -0xffffffff7ffffffdn],
+ [-0x8000000000000001n, 0x80000001n, -0x8000000080000002n],
+ [-0x8000000000000000n, 0x80000001n, -0x7fffffff7fffffffn],
+ [-0x7fffffffffffffffn, 0x80000001n, -0x7fffffff80000000n],
+ [-0x7ffffffffffffffen, 0x80000001n, -0x7fffffff7ffffffdn],
+ [-0x100000001n, 0x80000001n, -0x180000002n],
+ [-0x100000000n, 0x80000001n, -0x7fffffffn],
+ [-0xffffffffn, 0x80000001n, -0x80000000n],
+ [-0xfffffffen, 0x80000001n, -0x7ffffffdn],
+ [-0x80000001n, 0x80000001n, -2n],
+ [-0x80000000n, 0x80000001n, -0xffffffffn],
+ [-0x7fffffffn, 0x80000001n, -0x100000000n],
+ [-0x7ffffffen, 0x80000001n, -0xfffffffdn],
+ [0x80000001n, 0x80000001n, 0n],
+ [0xfffffffen, 0x80000001n, 0x7fffffffn],
+ [0xffffffffn, 0x80000001n, 0x7ffffffen],
+ [0x100000000n, 0x80000001n, 0x180000001n],
+ [0x100000001n, 0x80000001n, 0x180000000n],
+ [0x7ffffffffffffffen, 0x80000001n, 0x7fffffff7fffffffn],
+ [0x7fffffffffffffffn, 0x80000001n, 0x7fffffff7ffffffen],
+ [0x8000000000000000n, 0x80000001n, 0x8000000080000001n],
+ [0x8000000000000001n, 0x80000001n, 0x8000000080000000n],
+ [0xfffffffffffffffen, 0x80000001n, 0xffffffff7fffffffn],
+ [0xffffffffffffffffn, 0x80000001n, 0xffffffff7ffffffen],
+ [0x10000000000000000n, 0x80000001n, 0x10000000080000001n],
+ [0x10000000000000001n, 0x80000001n, 0x10000000080000000n],
+ [-0x10000000000000001n, -0x80000001n, 0x10000000080000000n],
+ [-0x10000000000000000n, -0x80000001n, 0xffffffff7fffffffn],
+ [-0xffffffffffffffffn, -0x80000001n, 0xffffffff7ffffffen],
+ [-0xfffffffffffffffen, -0x80000001n, 0xffffffff7ffffffdn],
+ [-0x8000000000000001n, -0x80000001n, 0x8000000080000000n],
+ [-0x8000000000000000n, -0x80000001n, 0x7fffffff7fffffffn],
+ [-0x7fffffffffffffffn, -0x80000001n, 0x7fffffff7ffffffen],
+ [-0x7ffffffffffffffen, -0x80000001n, 0x7fffffff7ffffffdn],
+ [-0x100000001n, -0x80000001n, 0x180000000n],
+ [-0x100000000n, -0x80000001n, 0x7fffffffn],
+ [-0xffffffffn, -0x80000001n, 0x7ffffffen],
+ [-0xfffffffen, -0x80000001n, 0x7ffffffdn],
+ [-0x80000001n, -0x80000001n, 0n],
+ [-0x80000000n, -0x80000001n, 0xffffffffn],
+ [-0x7fffffffn, -0x80000001n, 0xfffffffen],
+ [-0x7ffffffen, -0x80000001n, 0xfffffffdn],
+ [0xfffffffen, -0x80000001n, -0x7fffffffn],
+ [0xffffffffn, -0x80000001n, -0x80000000n],
+ [0x100000000n, -0x80000001n, -0x180000001n],
+ [0x100000001n, -0x80000001n, -0x180000002n],
+ [0x7ffffffffffffffen, -0x80000001n, -0x7fffffff7fffffffn],
+ [0x7fffffffffffffffn, -0x80000001n, -0x7fffffff80000000n],
+ [0x8000000000000000n, -0x80000001n, -0x8000000080000001n],
+ [0x8000000000000001n, -0x80000001n, -0x8000000080000002n],
+ [0xfffffffffffffffen, -0x80000001n, -0xffffffff7fffffffn],
+ [0xffffffffffffffffn, -0x80000001n, -0xffffffff80000000n],
+ [0x10000000000000000n, -0x80000001n, -0x10000000080000001n],
+ [0x10000000000000001n, -0x80000001n, -0x10000000080000002n],
+ [-0x10000000000000001n, -0x80000000n, 0x1000000007fffffffn],
+ [-0x10000000000000000n, -0x80000000n, 0xffffffff80000000n],
+ [-0xffffffffffffffffn, -0x80000000n, 0xffffffff80000001n],
+ [-0xfffffffffffffffen, -0x80000000n, 0xffffffff80000002n],
+ [-0x8000000000000001n, -0x80000000n, 0x800000007fffffffn],
+ [-0x8000000000000000n, -0x80000000n, 0x7fffffff80000000n],
+ [-0x7fffffffffffffffn, -0x80000000n, 0x7fffffff80000001n],
+ [-0x7ffffffffffffffen, -0x80000000n, 0x7fffffff80000002n],
+ [-0x100000001n, -0x80000000n, 0x17fffffffn],
+ [-0x100000000n, -0x80000000n, 0x80000000n],
+ [-0xffffffffn, -0x80000000n, 0x80000001n],
+ [-0xfffffffen, -0x80000000n, 0x80000002n],
+ [-0x80000000n, -0x80000000n, 0n],
+ [-0x7fffffffn, -0x80000000n, 1n],
+ [-0x7ffffffen, -0x80000000n, 2n],
+ [0xfffffffen, -0x80000000n, -0x80000002n],
+ [0xffffffffn, -0x80000000n, -0x80000001n],
+ [0x100000000n, -0x80000000n, -0x180000000n],
+ [0x100000001n, -0x80000000n, -0x17fffffffn],
+ [0x7ffffffffffffffen, -0x80000000n, -0x7fffffff80000002n],
+ [0x7fffffffffffffffn, -0x80000000n, -0x7fffffff80000001n],
+ [0x8000000000000000n, -0x80000000n, -0x8000000080000000n],
+ [0x8000000000000001n, -0x80000000n, -0x800000007fffffffn],
+ [0xfffffffffffffffen, -0x80000000n, -0xffffffff80000002n],
+ [0xffffffffffffffffn, -0x80000000n, -0xffffffff80000001n],
+ [0x10000000000000000n, -0x80000000n, -0x10000000080000000n],
+ [0x10000000000000001n, -0x80000000n, -0x1000000007fffffffn],
+ [-0x10000000000000001n, -0x7fffffffn, 0x1000000007ffffffen],
+ [-0x10000000000000000n, -0x7fffffffn, 0xffffffff80000001n],
+ [-0xffffffffffffffffn, -0x7fffffffn, 0xffffffff80000000n],
+ [-0xfffffffffffffffen, -0x7fffffffn, 0xffffffff80000003n],
+ [-0x8000000000000001n, -0x7fffffffn, 0x800000007ffffffen],
+ [-0x8000000000000000n, -0x7fffffffn, 0x7fffffff80000001n],
+ [-0x7fffffffffffffffn, -0x7fffffffn, 0x7fffffff80000000n],
+ [-0x7ffffffffffffffen, -0x7fffffffn, 0x7fffffff80000003n],
+ [-0x100000001n, -0x7fffffffn, 0x17ffffffen],
+ [-0x100000000n, -0x7fffffffn, 0x80000001n],
+ [-0xffffffffn, -0x7fffffffn, 0x80000000n],
+ [-0xfffffffen, -0x7fffffffn, 0x80000003n],
+ [-0x7fffffffn, -0x7fffffffn, 0n],
+ [-0x7ffffffen, -0x7fffffffn, 3n],
+ [0xfffffffen, -0x7fffffffn, -0x80000001n],
+ [0xffffffffn, -0x7fffffffn, -0x80000002n],
+ [0x100000000n, -0x7fffffffn, -0x17fffffffn],
+ [0x100000001n, -0x7fffffffn, -0x180000000n],
+ [0x7ffffffffffffffen, -0x7fffffffn, -0x7fffffff80000001n],
+ [0x7fffffffffffffffn, -0x7fffffffn, -0x7fffffff80000002n],
+ [0x8000000000000000n, -0x7fffffffn, -0x800000007fffffffn],
+ [0x8000000000000001n, -0x7fffffffn, -0x8000000080000000n],
+ [0xfffffffffffffffen, -0x7fffffffn, -0xffffffff80000001n],
+ [0xffffffffffffffffn, -0x7fffffffn, -0xffffffff80000002n],
+ [0x10000000000000000n, -0x7fffffffn, -0x1000000007fffffffn],
+ [0x10000000000000001n, -0x7fffffffn, -0x10000000080000000n],
+ [-0x10000000000000001n, -0x7ffffffen, 0x1000000007ffffffdn],
+ [-0x10000000000000000n, -0x7ffffffen, 0xffffffff80000002n],
+ [-0xffffffffffffffffn, -0x7ffffffen, 0xffffffff80000003n],
+ [-0xfffffffffffffffen, -0x7ffffffen, 0xffffffff80000000n],
+ [-0x8000000000000001n, -0x7ffffffen, 0x800000007ffffffdn],
+ [-0x8000000000000000n, -0x7ffffffen, 0x7fffffff80000002n],
+ [-0x7fffffffffffffffn, -0x7ffffffen, 0x7fffffff80000003n],
+ [-0x7ffffffffffffffen, -0x7ffffffen, 0x7fffffff80000000n],
+ [-0x100000001n, -0x7ffffffen, 0x17ffffffdn],
+ [-0x100000000n, -0x7ffffffen, 0x80000002n],
+ [-0xffffffffn, -0x7ffffffen, 0x80000003n],
+ [-0xfffffffen, -0x7ffffffen, 0x80000000n],
+ [-0x7ffffffen, -0x7ffffffen, 0n],
+ [0xfffffffen, -0x7ffffffen, -0x80000004n],
+ [0xffffffffn, -0x7ffffffen, -0x80000003n],
+ [0x100000000n, -0x7ffffffen, -0x17ffffffen],
+ [0x100000001n, -0x7ffffffen, -0x17ffffffdn],
+ [0x7ffffffffffffffen, -0x7ffffffen, -0x7fffffff80000004n],
+ [0x7fffffffffffffffn, -0x7ffffffen, -0x7fffffff80000003n],
+ [0x8000000000000000n, -0x7ffffffen, -0x800000007ffffffen],
+ [0x8000000000000001n, -0x7ffffffen, -0x800000007ffffffdn],
+ [0xfffffffffffffffen, -0x7ffffffen, -0xffffffff80000004n],
+ [0xffffffffffffffffn, -0x7ffffffen, -0xffffffff80000003n],
+ [0x10000000000000000n, -0x7ffffffen, -0x1000000007ffffffen],
+ [0x10000000000000001n, -0x7ffffffen, -0x1000000007ffffffdn],
+ [-0x10000000000000001n, 0xfffffffen, -0x100000000ffffffffn],
+ [-0x10000000000000000n, 0xfffffffen, -0xffffffff00000002n],
+ [-0xffffffffffffffffn, 0xfffffffen, -0xffffffff00000001n],
+ [-0xfffffffffffffffen, 0xfffffffen, -0xffffffff00000004n],
+ [-0x8000000000000001n, 0xfffffffen, -0x80000000ffffffffn],
+ [-0x8000000000000000n, 0xfffffffen, -0x7fffffff00000002n],
+ [-0x7fffffffffffffffn, 0xfffffffen, -0x7fffffff00000001n],
+ [-0x7ffffffffffffffen, 0xfffffffen, -0x7fffffff00000004n],
+ [-0x100000001n, 0xfffffffen, -0x1ffffffffn],
+ [-0x100000000n, 0xfffffffen, -2n],
+ [-0xffffffffn, 0xfffffffen, -1n],
+ [-0xfffffffen, 0xfffffffen, -4n],
+ [0xfffffffen, 0xfffffffen, 0n],
+ [0xffffffffn, 0xfffffffen, 1n],
+ [0x100000000n, 0xfffffffen, 0x1fffffffen],
+ [0x100000001n, 0xfffffffen, 0x1ffffffffn],
+ [0x7ffffffffffffffen, 0xfffffffen, 0x7fffffff00000000n],
+ [0x7fffffffffffffffn, 0xfffffffen, 0x7fffffff00000001n],
+ [0x8000000000000000n, 0xfffffffen, 0x80000000fffffffen],
+ [0x8000000000000001n, 0xfffffffen, 0x80000000ffffffffn],
+ [0xfffffffffffffffen, 0xfffffffen, 0xffffffff00000000n],
+ [0xffffffffffffffffn, 0xfffffffen, 0xffffffff00000001n],
+ [0x10000000000000000n, 0xfffffffen, 0x100000000fffffffen],
+ [0x10000000000000001n, 0xfffffffen, 0x100000000ffffffffn],
+ [-0x10000000000000001n, 0xffffffffn, -0x10000000100000000n],
+ [-0x10000000000000000n, 0xffffffffn, -0xffffffff00000001n],
+ [-0xffffffffffffffffn, 0xffffffffn, -0xffffffff00000002n],
+ [-0xfffffffffffffffen, 0xffffffffn, -0xffffffff00000003n],
+ [-0x8000000000000001n, 0xffffffffn, -0x8000000100000000n],
+ [-0x8000000000000000n, 0xffffffffn, -0x7fffffff00000001n],
+ [-0x7fffffffffffffffn, 0xffffffffn, -0x7fffffff00000002n],
+ [-0x7ffffffffffffffen, 0xffffffffn, -0x7fffffff00000003n],
+ [-0x100000001n, 0xffffffffn, -0x200000000n],
+ [-0x100000000n, 0xffffffffn, -1n],
+ [-0xffffffffn, 0xffffffffn, -2n],
+ [-0xfffffffen, 0xffffffffn, -3n],
+ [0xffffffffn, 0xffffffffn, 0n],
+ [0x100000000n, 0xffffffffn, 0x1ffffffffn],
+ [0x100000001n, 0xffffffffn, 0x1fffffffen],
+ [0x7ffffffffffffffen, 0xffffffffn, 0x7fffffff00000001n],
+ [0x7fffffffffffffffn, 0xffffffffn, 0x7fffffff00000000n],
+ [0x8000000000000000n, 0xffffffffn, 0x80000000ffffffffn],
+ [0x8000000000000001n, 0xffffffffn, 0x80000000fffffffen],
+ [0xfffffffffffffffen, 0xffffffffn, 0xffffffff00000001n],
+ [0xffffffffffffffffn, 0xffffffffn, 0xffffffff00000000n],
+ [0x10000000000000000n, 0xffffffffn, 0x100000000ffffffffn],
+ [0x10000000000000001n, 0xffffffffn, 0x100000000fffffffen],
+ [-0x10000000000000001n, 0x100000000n, -0x10000000100000001n],
+ [-0x10000000000000000n, 0x100000000n, -0xffffffff00000000n],
+ [-0xffffffffffffffffn, 0x100000000n, -0xfffffffeffffffffn],
+ [-0xfffffffffffffffen, 0x100000000n, -0xfffffffefffffffen],
+ [-0x8000000000000001n, 0x100000000n, -0x8000000100000001n],
+ [-0x8000000000000000n, 0x100000000n, -0x7fffffff00000000n],
+ [-0x7fffffffffffffffn, 0x100000000n, -0x7ffffffeffffffffn],
+ [-0x7ffffffffffffffen, 0x100000000n, -0x7ffffffefffffffen],
+ [-0x100000001n, 0x100000000n, -1n],
+ [-0x100000000n, 0x100000000n, -0x200000000n],
+ [-0xffffffffn, 0x100000000n, -0x1ffffffffn],
+ [-0xfffffffen, 0x100000000n, -0x1fffffffen],
+ [0x100000000n, 0x100000000n, 0n],
+ [0x100000001n, 0x100000000n, 1n],
+ [0x7ffffffffffffffen, 0x100000000n, 0x7ffffffefffffffen],
+ [0x7fffffffffffffffn, 0x100000000n, 0x7ffffffeffffffffn],
+ [0x8000000000000000n, 0x100000000n, 0x8000000100000000n],
+ [0x8000000000000001n, 0x100000000n, 0x8000000100000001n],
+ [0xfffffffffffffffen, 0x100000000n, 0xfffffffefffffffen],
+ [0xffffffffffffffffn, 0x100000000n, 0xfffffffeffffffffn],
+ [0x10000000000000000n, 0x100000000n, 0x10000000100000000n],
+ [0x10000000000000001n, 0x100000000n, 0x10000000100000001n],
+ [-0x10000000000000001n, 0x100000001n, -0x10000000100000002n],
+ [-0x10000000000000000n, 0x100000001n, -0xfffffffeffffffffn],
+ [-0xffffffffffffffffn, 0x100000001n, -0xffffffff00000000n],
+ [-0xfffffffffffffffen, 0x100000001n, -0xfffffffefffffffdn],
+ [-0x8000000000000001n, 0x100000001n, -0x8000000100000002n],
+ [-0x8000000000000000n, 0x100000001n, -0x7ffffffeffffffffn],
+ [-0x7fffffffffffffffn, 0x100000001n, -0x7fffffff00000000n],
+ [-0x7ffffffffffffffen, 0x100000001n, -0x7ffffffefffffffdn],
+ [-0x100000001n, 0x100000001n, -2n],
+ [-0x100000000n, 0x100000001n, -0x1ffffffffn],
+ [-0xffffffffn, 0x100000001n, -0x200000000n],
+ [-0xfffffffen, 0x100000001n, -0x1fffffffdn],
+ [0x100000001n, 0x100000001n, 0n],
+ [0x7ffffffffffffffen, 0x100000001n, 0x7ffffffeffffffffn],
+ [0x7fffffffffffffffn, 0x100000001n, 0x7ffffffefffffffen],
+ [0x8000000000000000n, 0x100000001n, 0x8000000100000001n],
+ [0x8000000000000001n, 0x100000001n, 0x8000000100000000n],
+ [0xfffffffffffffffen, 0x100000001n, 0xfffffffeffffffffn],
+ [0xffffffffffffffffn, 0x100000001n, 0xfffffffefffffffen],
+ [0x10000000000000000n, 0x100000001n, 0x10000000100000001n],
+ [0x10000000000000001n, 0x100000001n, 0x10000000100000000n],
+ [-0x10000000000000001n, -0x100000001n, 0x10000000100000000n],
+ [-0x10000000000000000n, -0x100000001n, 0xfffffffeffffffffn],
+ [-0xffffffffffffffffn, -0x100000001n, 0xfffffffefffffffen],
+ [-0xfffffffffffffffen, -0x100000001n, 0xfffffffefffffffdn],
+ [-0x8000000000000001n, -0x100000001n, 0x8000000100000000n],
+ [-0x8000000000000000n, -0x100000001n, 0x7ffffffeffffffffn],
+ [-0x7fffffffffffffffn, -0x100000001n, 0x7ffffffefffffffen],
+ [-0x7ffffffffffffffen, -0x100000001n, 0x7ffffffefffffffdn],
+ [-0x100000001n, -0x100000001n, 0n],
+ [-0x100000000n, -0x100000001n, 0x1ffffffffn],
+ [-0xffffffffn, -0x100000001n, 0x1fffffffen],
+ [-0xfffffffen, -0x100000001n, 0x1fffffffdn],
+ [0x7ffffffffffffffen, -0x100000001n, -0x7ffffffeffffffffn],
+ [0x7fffffffffffffffn, -0x100000001n, -0x7fffffff00000000n],
+ [0x8000000000000000n, -0x100000001n, -0x8000000100000001n],
+ [0x8000000000000001n, -0x100000001n, -0x8000000100000002n],
+ [0xfffffffffffffffen, -0x100000001n, -0xfffffffeffffffffn],
+ [0xffffffffffffffffn, -0x100000001n, -0xffffffff00000000n],
+ [0x10000000000000000n, -0x100000001n, -0x10000000100000001n],
+ [0x10000000000000001n, -0x100000001n, -0x10000000100000002n],
+ [-0x10000000000000001n, -0x100000000n, 0x100000000ffffffffn],
+ [-0x10000000000000000n, -0x100000000n, 0xffffffff00000000n],
+ [-0xffffffffffffffffn, -0x100000000n, 0xffffffff00000001n],
+ [-0xfffffffffffffffen, -0x100000000n, 0xffffffff00000002n],
+ [-0x8000000000000001n, -0x100000000n, 0x80000000ffffffffn],
+ [-0x8000000000000000n, -0x100000000n, 0x7fffffff00000000n],
+ [-0x7fffffffffffffffn, -0x100000000n, 0x7fffffff00000001n],
+ [-0x7ffffffffffffffen, -0x100000000n, 0x7fffffff00000002n],
+ [-0x100000000n, -0x100000000n, 0n],
+ [-0xffffffffn, -0x100000000n, 1n],
+ [-0xfffffffen, -0x100000000n, 2n],
+ [0x7ffffffffffffffen, -0x100000000n, -0x7fffffff00000002n],
+ [0x7fffffffffffffffn, -0x100000000n, -0x7fffffff00000001n],
+ [0x8000000000000000n, -0x100000000n, -0x8000000100000000n],
+ [0x8000000000000001n, -0x100000000n, -0x80000000ffffffffn],
+ [0xfffffffffffffffen, -0x100000000n, -0xffffffff00000002n],
+ [0xffffffffffffffffn, -0x100000000n, -0xffffffff00000001n],
+ [0x10000000000000000n, -0x100000000n, -0x10000000100000000n],
+ [0x10000000000000001n, -0x100000000n, -0x100000000ffffffffn],
+ [-0x10000000000000001n, -0xffffffffn, 0x100000000fffffffen],
+ [-0x10000000000000000n, -0xffffffffn, 0xffffffff00000001n],
+ [-0xffffffffffffffffn, -0xffffffffn, 0xffffffff00000000n],
+ [-0xfffffffffffffffen, -0xffffffffn, 0xffffffff00000003n],
+ [-0x8000000000000001n, -0xffffffffn, 0x80000000fffffffen],
+ [-0x8000000000000000n, -0xffffffffn, 0x7fffffff00000001n],
+ [-0x7fffffffffffffffn, -0xffffffffn, 0x7fffffff00000000n],
+ [-0x7ffffffffffffffen, -0xffffffffn, 0x7fffffff00000003n],
+ [-0xffffffffn, -0xffffffffn, 0n],
+ [-0xfffffffen, -0xffffffffn, 3n],
+ [0x7ffffffffffffffen, -0xffffffffn, -0x7fffffff00000001n],
+ [0x7fffffffffffffffn, -0xffffffffn, -0x7fffffff00000002n],
+ [0x8000000000000000n, -0xffffffffn, -0x80000000ffffffffn],
+ [0x8000000000000001n, -0xffffffffn, -0x8000000100000000n],
+ [0xfffffffffffffffen, -0xffffffffn, -0xffffffff00000001n],
+ [0xffffffffffffffffn, -0xffffffffn, -0xffffffff00000002n],
+ [0x10000000000000000n, -0xffffffffn, -0x100000000ffffffffn],
+ [0x10000000000000001n, -0xffffffffn, -0x10000000100000000n],
+ [-0x10000000000000001n, -0xfffffffen, 0x100000000fffffffdn],
+ [-0x10000000000000000n, -0xfffffffen, 0xffffffff00000002n],
+ [-0xffffffffffffffffn, -0xfffffffen, 0xffffffff00000003n],
+ [-0xfffffffffffffffen, -0xfffffffen, 0xffffffff00000000n],
+ [-0x8000000000000001n, -0xfffffffen, 0x80000000fffffffdn],
+ [-0x8000000000000000n, -0xfffffffen, 0x7fffffff00000002n],
+ [-0x7fffffffffffffffn, -0xfffffffen, 0x7fffffff00000003n],
+ [-0x7ffffffffffffffen, -0xfffffffen, 0x7fffffff00000000n],
+ [-0xfffffffen, -0xfffffffen, 0n],
+ [0x7ffffffffffffffen, -0xfffffffen, -0x7fffffff00000004n],
+ [0x7fffffffffffffffn, -0xfffffffen, -0x7fffffff00000003n],
+ [0x8000000000000000n, -0xfffffffen, -0x80000000fffffffen],
+ [0x8000000000000001n, -0xfffffffen, -0x80000000fffffffdn],
+ [0xfffffffffffffffen, -0xfffffffen, -0xffffffff00000004n],
+ [0xffffffffffffffffn, -0xfffffffen, -0xffffffff00000003n],
+ [0x10000000000000000n, -0xfffffffen, -0x100000000fffffffen],
+ [0x10000000000000001n, -0xfffffffen, -0x100000000fffffffdn],
+ [-0x10000000000000001n, 0x7ffffffffffffffen, -0x17fffffffffffffffn],
+ [-0x10000000000000000n, 0x7ffffffffffffffen, -0x8000000000000002n],
+ [-0xffffffffffffffffn, 0x7ffffffffffffffen, -0x8000000000000001n],
+ [-0xfffffffffffffffen, 0x7ffffffffffffffen, -0x8000000000000004n],
+ [-0x8000000000000001n, 0x7ffffffffffffffen, -0xffffffffffffffffn],
+ [-0x8000000000000000n, 0x7ffffffffffffffen, -2n],
+ [-0x7fffffffffffffffn, 0x7ffffffffffffffen, -1n],
+ [-0x7ffffffffffffffen, 0x7ffffffffffffffen, -4n],
+ [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0n],
+ [0x7fffffffffffffffn, 0x7ffffffffffffffen, 1n],
+ [0x8000000000000000n, 0x7ffffffffffffffen, 0xfffffffffffffffen],
+ [0x8000000000000001n, 0x7ffffffffffffffen, 0xffffffffffffffffn],
+ [0xfffffffffffffffen, 0x7ffffffffffffffen, 0x8000000000000000n],
+ [0xffffffffffffffffn, 0x7ffffffffffffffen, 0x8000000000000001n],
+ [0x10000000000000000n, 0x7ffffffffffffffen, 0x17ffffffffffffffen],
+ [0x10000000000000001n, 0x7ffffffffffffffen, 0x17fffffffffffffffn],
+ [-0x10000000000000001n, 0x7fffffffffffffffn, -0x18000000000000000n],
+ [-0x10000000000000000n, 0x7fffffffffffffffn, -0x8000000000000001n],
+ [-0xffffffffffffffffn, 0x7fffffffffffffffn, -0x8000000000000002n],
+ [-0xfffffffffffffffen, 0x7fffffffffffffffn, -0x8000000000000003n],
+ [-0x8000000000000001n, 0x7fffffffffffffffn, -0x10000000000000000n],
+ [-0x8000000000000000n, 0x7fffffffffffffffn, -1n],
+ [-0x7fffffffffffffffn, 0x7fffffffffffffffn, -2n],
+ [-0x7ffffffffffffffen, 0x7fffffffffffffffn, -3n],
+ [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0n],
+ [0x8000000000000000n, 0x7fffffffffffffffn, 0xffffffffffffffffn],
+ [0x8000000000000001n, 0x7fffffffffffffffn, 0xfffffffffffffffen],
+ [0xfffffffffffffffen, 0x7fffffffffffffffn, 0x8000000000000001n],
+ [0xffffffffffffffffn, 0x7fffffffffffffffn, 0x8000000000000000n],
+ [0x10000000000000000n, 0x7fffffffffffffffn, 0x17fffffffffffffffn],
+ [0x10000000000000001n, 0x7fffffffffffffffn, 0x17ffffffffffffffen],
+ [-0x10000000000000001n, 0x8000000000000000n, -0x18000000000000001n],
+ [-0x10000000000000000n, 0x8000000000000000n, -0x8000000000000000n],
+ [-0xffffffffffffffffn, 0x8000000000000000n, -0x7fffffffffffffffn],
+ [-0xfffffffffffffffen, 0x8000000000000000n, -0x7ffffffffffffffen],
+ [-0x8000000000000001n, 0x8000000000000000n, -1n],
+ [-0x8000000000000000n, 0x8000000000000000n, -0x10000000000000000n],
+ [-0x7fffffffffffffffn, 0x8000000000000000n, -0xffffffffffffffffn],
+ [-0x7ffffffffffffffen, 0x8000000000000000n, -0xfffffffffffffffen],
+ [0x8000000000000000n, 0x8000000000000000n, 0n],
+ [0x8000000000000001n, 0x8000000000000000n, 1n],
+ [0xfffffffffffffffen, 0x8000000000000000n, 0x7ffffffffffffffen],
+ [0xffffffffffffffffn, 0x8000000000000000n, 0x7fffffffffffffffn],
+ [0x10000000000000000n, 0x8000000000000000n, 0x18000000000000000n],
+ [0x10000000000000001n, 0x8000000000000000n, 0x18000000000000001n],
+ [-0x10000000000000001n, 0x8000000000000001n, -0x18000000000000002n],
+ [-0x10000000000000000n, 0x8000000000000001n, -0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, 0x8000000000000001n, -0x8000000000000000n],
+ [-0xfffffffffffffffen, 0x8000000000000001n, -0x7ffffffffffffffdn],
+ [-0x8000000000000001n, 0x8000000000000001n, -2n],
+ [-0x8000000000000000n, 0x8000000000000001n, -0xffffffffffffffffn],
+ [-0x7fffffffffffffffn, 0x8000000000000001n, -0x10000000000000000n],
+ [-0x7ffffffffffffffen, 0x8000000000000001n, -0xfffffffffffffffdn],
+ [0x8000000000000001n, 0x8000000000000001n, 0n],
+ [0xfffffffffffffffen, 0x8000000000000001n, 0x7fffffffffffffffn],
+ [0xffffffffffffffffn, 0x8000000000000001n, 0x7ffffffffffffffen],
+ [0x10000000000000000n, 0x8000000000000001n, 0x18000000000000001n],
+ [0x10000000000000001n, 0x8000000000000001n, 0x18000000000000000n],
+ [-0x10000000000000001n, -0x8000000000000001n, 0x18000000000000000n],
+ [-0x10000000000000000n, -0x8000000000000001n, 0x7fffffffffffffffn],
+ [-0xffffffffffffffffn, -0x8000000000000001n, 0x7ffffffffffffffen],
+ [-0xfffffffffffffffen, -0x8000000000000001n, 0x7ffffffffffffffdn],
+ [-0x8000000000000001n, -0x8000000000000001n, 0n],
+ [-0x8000000000000000n, -0x8000000000000001n, 0xffffffffffffffffn],
+ [-0x7fffffffffffffffn, -0x8000000000000001n, 0xfffffffffffffffen],
+ [-0x7ffffffffffffffen, -0x8000000000000001n, 0xfffffffffffffffdn],
+ [0xfffffffffffffffen, -0x8000000000000001n, -0x7fffffffffffffffn],
+ [0xffffffffffffffffn, -0x8000000000000001n, -0x8000000000000000n],
+ [0x10000000000000000n, -0x8000000000000001n, -0x18000000000000001n],
+ [0x10000000000000001n, -0x8000000000000001n, -0x18000000000000002n],
+ [-0x10000000000000001n, -0x8000000000000000n, 0x17fffffffffffffffn],
+ [-0x10000000000000000n, -0x8000000000000000n, 0x8000000000000000n],
+ [-0xffffffffffffffffn, -0x8000000000000000n, 0x8000000000000001n],
+ [-0xfffffffffffffffen, -0x8000000000000000n, 0x8000000000000002n],
+ [-0x8000000000000000n, -0x8000000000000000n, 0n],
+ [-0x7fffffffffffffffn, -0x8000000000000000n, 1n],
+ [-0x7ffffffffffffffen, -0x8000000000000000n, 2n],
+ [0xfffffffffffffffen, -0x8000000000000000n, -0x8000000000000002n],
+ [0xffffffffffffffffn, -0x8000000000000000n, -0x8000000000000001n],
+ [0x10000000000000000n, -0x8000000000000000n, -0x18000000000000000n],
+ [0x10000000000000001n, -0x8000000000000000n, -0x17fffffffffffffffn],
+ [-0x10000000000000001n, -0x7fffffffffffffffn, 0x17ffffffffffffffen],
+ [-0x10000000000000000n, -0x7fffffffffffffffn, 0x8000000000000001n],
+ [-0xffffffffffffffffn, -0x7fffffffffffffffn, 0x8000000000000000n],
+ [-0xfffffffffffffffen, -0x7fffffffffffffffn, 0x8000000000000003n],
+ [-0x7fffffffffffffffn, -0x7fffffffffffffffn, 0n],
+ [-0x7ffffffffffffffen, -0x7fffffffffffffffn, 3n],
+ [0xfffffffffffffffen, -0x7fffffffffffffffn, -0x8000000000000001n],
+ [0xffffffffffffffffn, -0x7fffffffffffffffn, -0x8000000000000002n],
+ [0x10000000000000000n, -0x7fffffffffffffffn, -0x17fffffffffffffffn],
+ [0x10000000000000001n, -0x7fffffffffffffffn, -0x18000000000000000n],
+ [-0x10000000000000001n, -0x7ffffffffffffffen, 0x17ffffffffffffffdn],
+ [-0x10000000000000000n, -0x7ffffffffffffffen, 0x8000000000000002n],
+ [-0xffffffffffffffffn, -0x7ffffffffffffffen, 0x8000000000000003n],
+ [-0xfffffffffffffffen, -0x7ffffffffffffffen, 0x8000000000000000n],
+ [-0x7ffffffffffffffen, -0x7ffffffffffffffen, 0n],
+ [0xfffffffffffffffen, -0x7ffffffffffffffen, -0x8000000000000004n],
+ [0xffffffffffffffffn, -0x7ffffffffffffffen, -0x8000000000000003n],
+ [0x10000000000000000n, -0x7ffffffffffffffen, -0x17ffffffffffffffen],
+ [0x10000000000000001n, -0x7ffffffffffffffen, -0x17ffffffffffffffdn],
+ [-0x10000000000000001n, 0xfffffffffffffffen, -0x1ffffffffffffffffn],
+ [-0x10000000000000000n, 0xfffffffffffffffen, -2n],
+ [-0xffffffffffffffffn, 0xfffffffffffffffen, -1n],
+ [-0xfffffffffffffffen, 0xfffffffffffffffen, -4n],
+ [0xfffffffffffffffen, 0xfffffffffffffffen, 0n],
+ [0xffffffffffffffffn, 0xfffffffffffffffen, 1n],
+ [0x10000000000000000n, 0xfffffffffffffffen, 0x1fffffffffffffffen],
+ [0x10000000000000001n, 0xfffffffffffffffen, 0x1ffffffffffffffffn],
+ [-0x10000000000000001n, 0xffffffffffffffffn, -0x20000000000000000n],
+ [-0x10000000000000000n, 0xffffffffffffffffn, -1n],
+ [-0xffffffffffffffffn, 0xffffffffffffffffn, -2n],
+ [-0xfffffffffffffffen, 0xffffffffffffffffn, -3n],
+ [0xffffffffffffffffn, 0xffffffffffffffffn, 0n],
+ [0x10000000000000000n, 0xffffffffffffffffn, 0x1ffffffffffffffffn],
+ [0x10000000000000001n, 0xffffffffffffffffn, 0x1fffffffffffffffen],
+ [-0x10000000000000001n, 0x10000000000000000n, -1n],
+ [-0x10000000000000000n, 0x10000000000000000n, -0x20000000000000000n],
+ [-0xffffffffffffffffn, 0x10000000000000000n, -0x1ffffffffffffffffn],
+ [-0xfffffffffffffffen, 0x10000000000000000n, -0x1fffffffffffffffen],
+ [0x10000000000000000n, 0x10000000000000000n, 0n],
+ [0x10000000000000001n, 0x10000000000000000n, 1n],
+ [-0x10000000000000001n, 0x10000000000000001n, -2n],
+ [-0x10000000000000000n, 0x10000000000000001n, -0x1ffffffffffffffffn],
+ [-0xffffffffffffffffn, 0x10000000000000001n, -0x20000000000000000n],
+ [-0xfffffffffffffffen, 0x10000000000000001n, -0x1fffffffffffffffdn],
+ [0x10000000000000001n, 0x10000000000000001n, 0n],
+ [-0x10000000000000001n, -0x10000000000000001n, 0n],
+ [-0x10000000000000000n, -0x10000000000000001n, 0x1ffffffffffffffffn],
+ [-0xffffffffffffffffn, -0x10000000000000001n, 0x1fffffffffffffffen],
+ [-0xfffffffffffffffen, -0x10000000000000001n, 0x1fffffffffffffffdn],
+ [-0x10000000000000000n, -0x10000000000000000n, 0n],
+ [-0xffffffffffffffffn, -0x10000000000000000n, 1n],
+ [-0xfffffffffffffffen, -0x10000000000000000n, 2n],
+ [-0xffffffffffffffffn, -0xffffffffffffffffn, 0n],
+ [-0xfffffffffffffffen, -0xffffffffffffffffn, 3n],
+ [-0xfffffffffffffffen, -0xfffffffffffffffen, 0n],
+];
+
+function f(tests) {
+ for (let test of tests) {
+ let lhs = test[0], rhs = test[1], expected = test[2];
+
+ assertEq(lhs ^ rhs, expected);
+ assertEq(rhs ^ lhs, expected);
+ }
+}
+
+for (let i = 0; i < 10; ++i) {
+ f(tests);
+}
diff --git a/js/src/jit-test/tests/bigint/bug1531269.js b/js/src/jit-test/tests/bigint/bug1531269.js
new file mode 100644
index 0000000000..cf550a5f90
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bug1531269.js
@@ -0,0 +1,13 @@
+var x = 0b1111n << 126n;
+// octets: g f e d c b a 9 8 7 6 5 4 3 2 1 0
+assertEq(x, 0x03c0000000000000000000000000000000n);
+
+function tr(bits, x) { return BigInt.asUintN(bits, x); }
+
+// octets: g f e d c b a 9 8 7 6 5 4 3 2 1 0
+assertEq(tr(131, x), 0x03c0000000000000000000000000000000n);
+assertEq(tr(130, x), 0x03c0000000000000000000000000000000n);
+assertEq(tr(129, x), 0x01c0000000000000000000000000000000n);
+assertEq(tr(128, x), 0x00c0000000000000000000000000000000n);
+assertEq(tr(127, x), 0x0040000000000000000000000000000000n);
+assertEq(tr(126, x), 0n);
diff --git a/js/src/jit-test/tests/bigint/bug1551128.js b/js/src/jit-test/tests/bigint/bug1551128.js
new file mode 100644
index 0000000000..50b295aec4
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bug1551128.js
@@ -0,0 +1,6 @@
+load(libdir + "asserts.js");
+
+assertEq(BigInt.asUintN(32, -1n), 0xffffffffn);
+assertThrowsInstanceOf(() => BigInt.asUintN(2**32 - 1, -1n), RangeError);
+assertThrowsInstanceOf(() => BigInt.asUintN(2**32, -1n), RangeError);
+assertThrowsInstanceOf(() => BigInt.asUintN(2**53 - 1, -1n), RangeError);
diff --git a/js/src/jit-test/tests/bigint/bug1580020.js b/js/src/jit-test/tests/bigint/bug1580020.js
new file mode 100644
index 0000000000..52ef27dd5f
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bug1580020.js
@@ -0,0 +1,14 @@
+// This test was designed for asan.
+//
+// In the deferred mode of parsing we need to ensure that the
+// asmJS parser doesn't emit the deferred big int under the
+// asmJS lifo alloc.
+var x = -1n;
+function a() {
+ 'use asm';
+ function f() {
+ return (((((-1) >>> (0 + 0)) | 0) % 10000) >> (0 + 0)) | 0;
+ }
+ return f;
+}
+assertEq(true, a()() == x); \ No newline at end of file
diff --git a/js/src/jit-test/tests/bigint/bug1679003.js b/js/src/jit-test/tests/bigint/bug1679003.js
new file mode 100644
index 0000000000..aee9c0567d
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bug1679003.js
@@ -0,0 +1,4 @@
+for (let i = 0, j = 0; i < 100; ++i) {
+ let x = (-0xffffffffffffffff_ffffffffffffffffn >> 0x40n);
+ assertEq(x, -0x10000000000000000n);
+}
diff --git a/js/src/jit-test/tests/bigint/bug1784435.js b/js/src/jit-test/tests/bigint/bug1784435.js
new file mode 100644
index 0000000000..cda077d59f
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bug1784435.js
@@ -0,0 +1,4 @@
+// |jit-test| error:RangeError
+v2 = new Uint32Array(65537);
+v4 = Object.getOwnPropertyNames(v2);
+do {} while (v4 < 10n);
diff --git a/js/src/jit-test/tests/bigint/bug1849099.js b/js/src/jit-test/tests/bigint/bug1849099.js
new file mode 100644
index 0000000000..f61a9bfb73
--- /dev/null
+++ b/js/src/jit-test/tests/bigint/bug1849099.js
@@ -0,0 +1,14 @@
+// |jit-test| --fast-warmup; --no-threads
+
+function foo(a,b) {
+ a >> a
+ b ^ b
+}
+
+with ({}) {}
+for (var i = 0; i < 100; i++) {
+ foo(10n, -1n);
+ try {
+ foo(-2147483648n);
+ } catch {}
+}