From 95574417a16c4ebe0aa19ccc1ce28effcbec9982 Mon Sep 17 00:00:00 2001 From: Maximooch Date: Wed, 14 Oct 2026 01:33:11 -0500 Subject: [PATCH] Exclude eight calls for quarter-integral ternary bit frames Extend the half-integral census with exact primary and DFS replay, parity certificates, formal witness and scoped proof. Co-authored-by: penguin-agent[bot] --- .../CERTIFICATE.json | 19158 ++++++++++++++++ .../bit-quarter-ternary-catalyst/README.md | 137 + .../bit-quarter-ternary-catalyst/SOURCES.json | 36 + .../bit-quarter-ternary-catalyst/TASK.json | 64 + .../bit-quarter-ternary-catalyst/VERIFY.json | 32 + .../independent.py | 320 + .../bit-quarter-ternary-catalyst/verify.py | 335 + 7 files changed, 20082 insertions(+) create mode 100644 research/bit-quarter-ternary-catalyst/CERTIFICATE.json create mode 100644 research/bit-quarter-ternary-catalyst/README.md create mode 100644 research/bit-quarter-ternary-catalyst/SOURCES.json create mode 100644 research/bit-quarter-ternary-catalyst/TASK.json create mode 100644 research/bit-quarter-ternary-catalyst/VERIFY.json create mode 100644 research/bit-quarter-ternary-catalyst/independent.py create mode 100644 research/bit-quarter-ternary-catalyst/verify.py diff --git a/research/bit-quarter-ternary-catalyst/CERTIFICATE.json b/research/bit-quarter-ternary-catalyst/CERTIFICATE.json new file mode 100644 index 0000000000..70d1964c35 --- /dev/null +++ b/research/bit-quarter-ternary-catalyst/CERTIFICATE.json @@ -0,0 +1,19158 @@ +{ + "schema_version": 1, + "scope": "three identical identity targets; ternary outer products divided by two or four; arbitrary finite restored dirty registers", + "frame_denominator": 4, + "target_scaled": [ + 4, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 4 + ], + "alphabet": [ + [ + -2, + -2, + -2, + -2, + -2, + -2, + -2, + -2, + -2 + ], + [ + -2, + -2, + -2, + -2, + -2, + -2, + 0, + 0, + 0 + ], + [ + -2, + -2, + -2, + -2, + -2, + -2, + 2, + 2, + 2 + ], + [ + -2, + -2, + -2, + 0, + 0, + 0, + -2, + -2, + -2 + ], + [ + -2, + -2, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + -2, + -2, + 0, + 0, + 0, + 2, + 2, + 2 + ], + [ + -2, + -2, + -2, + 2, + 2, + 2, + -2, + -2, + -2 + ], + [ + -2, + -2, + -2, + 2, + 2, + 2, + 0, + 0, + 0 + ], + [ + -2, + -2, + -2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + [ + -2, + -2, + 0, + -2, + -2, + 0, + -2, + -2, + 0 + ], + [ + -2, + -2, + 0, + -2, + -2, + 0, + 0, + 0, + 0 + ], + [ + -2, + -2, + 0, + -2, + -2, + 0, + 2, + 2, + 0 + ], + [ + -2, + -2, + 0, + 0, + 0, + 0, + -2, + -2, + 0 + ], + [ + -2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + -2, + 0, + 0, + 0, + 0, + 2, + 2, + 0 + ], + [ + -2, + -2, + 0, + 2, + 2, + 0, + -2, + -2, + 0 + ], + [ + -2, + -2, + 0, + 2, + 2, + 0, + 0, + 0, + 0 + ], + [ + -2, + -2, + 0, + 2, + 2, + 0, + 2, + 2, + 0 + ], + [ + -2, + -2, + 2, + -2, + -2, + 2, + -2, + -2, + 2 + ], + [ + -2, + -2, + 2, + -2, + -2, + 2, + 0, + 0, + 0 + ], + [ + -2, + -2, + 2, + -2, + -2, + 2, + 2, + 2, + -2 + ], + [ + -2, + -2, + 2, + 0, + 0, + 0, + -2, + -2, + 2 + ], + [ + -2, + -2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + -2, + 2, + 0, + 0, + 0, + 2, + 2, + -2 + ], + [ + -2, + -2, + 2, + 2, + 2, + -2, + -2, + -2, + 2 + ], + [ + -2, + -2, + 2, + 2, + 2, + -2, + 0, + 0, + 0 + ], + [ + -2, + -2, + 2, + 2, + 2, + -2, + 2, + 2, + -2 + ], + [ + -2, + 0, + -2, + -2, + 0, + -2, + -2, + 0, + -2 + ], + [ + -2, + 0, + -2, + -2, + 0, + -2, + 0, + 0, + 0 + ], + [ + -2, + 0, + -2, + -2, + 0, + -2, + 2, + 0, + 2 + ], + [ + -2, + 0, + -2, + 0, + 0, + 0, + -2, + 0, + -2 + ], + [ + -2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 0, + -2, + 0, + 0, + 0, + 2, + 0, + 2 + ], + [ + -2, + 0, + -2, + 2, + 0, + 2, + -2, + 0, + -2 + ], + [ + -2, + 0, + -2, + 2, + 0, + 2, + 0, + 0, + 0 + ], + [ + -2, + 0, + -2, + 2, + 0, + 2, + 2, + 0, + 2 + ], + [ + -2, + 0, + 0, + -2, + 0, + 0, + -2, + 0, + 0 + ], + [ + -2, + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0 + ], + [ + -2, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 0 + ], + [ + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + [ + -2, + 0, + 0, + 2, + 0, + 0, + -2, + 0, + 0 + ], + [ + -2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0 + ], + [ + -2, + 0, + 2, + -2, + 0, + 2, + -2, + 0, + 2 + ], + [ + -2, + 0, + 2, + -2, + 0, + 2, + 0, + 0, + 0 + ], + [ + -2, + 0, + 2, + -2, + 0, + 2, + 2, + 0, + -2 + ], + [ + -2, + 0, + 2, + 0, + 0, + 0, + -2, + 0, + 2 + ], + [ + -2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + -2 + ], + [ + -2, + 0, + 2, + 2, + 0, + -2, + -2, + 0, + 2 + ], + [ + -2, + 0, + 2, + 2, + 0, + -2, + 0, + 0, + 0 + ], + [ + -2, + 0, + 2, + 2, + 0, + -2, + 2, + 0, + -2 + ], + [ + -2, + 2, + -2, + -2, + 2, + -2, + -2, + 2, + -2 + ], + [ + -2, + 2, + -2, + -2, + 2, + -2, + 0, + 0, + 0 + ], + [ + -2, + 2, + -2, + -2, + 2, + -2, + 2, + -2, + 2 + ], + [ + -2, + 2, + -2, + 0, + 0, + 0, + -2, + 2, + -2 + ], + [ + -2, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 2, + -2, + 0, + 0, + 0, + 2, + -2, + 2 + ], + [ + -2, + 2, + -2, + 2, + -2, + 2, + -2, + 2, + -2 + ], + [ + -2, + 2, + -2, + 2, + -2, + 2, + 0, + 0, + 0 + ], + [ + -2, + 2, + -2, + 2, + -2, + 2, + 2, + -2, + 2 + ], + [ + -2, + 2, + 0, + -2, + 2, + 0, + -2, + 2, + 0 + ], + [ + -2, + 2, + 0, + -2, + 2, + 0, + 0, + 0, + 0 + ], + [ + -2, + 2, + 0, + -2, + 2, + 0, + 2, + -2, + 0 + ], + [ + -2, + 2, + 0, + 0, + 0, + 0, + -2, + 2, + 0 + ], + [ + -2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 2, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + -2, + 2, + 0, + 2, + -2, + 0, + -2, + 2, + 0 + ], + [ + -2, + 2, + 0, + 2, + -2, + 0, + 0, + 0, + 0 + ], + [ + -2, + 2, + 0, + 2, + -2, + 0, + 2, + -2, + 0 + ], + [ + -2, + 2, + 2, + -2, + 2, + 2, + -2, + 2, + 2 + ], + [ + -2, + 2, + 2, + -2, + 2, + 2, + 0, + 0, + 0 + ], + [ + -2, + 2, + 2, + -2, + 2, + 2, + 2, + -2, + -2 + ], + [ + -2, + 2, + 2, + 0, + 0, + 0, + -2, + 2, + 2 + ], + [ + -2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -2, + 2, + 2, + 0, + 0, + 0, + 2, + -2, + -2 + ], + [ + -2, + 2, + 2, + 2, + -2, + -2, + -2, + 2, + 2 + ], + [ + -2, + 2, + 2, + 2, + -2, + -2, + 0, + 0, + 0 + ], + [ + -2, + 2, + 2, + 2, + -2, + -2, + 2, + -2, + -2 + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1 + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 0, + 0 + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + 1, + 1, + 1 + ], + [ + -1, + -1, + -1, + 0, + 0, + 0, + -1, + -1, + -1 + ], + [ + -1, + -1, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + -1, + -1, + 0, + 0, + 0, + 1, + 1, + 1 + ], + [ + -1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + -1 + ], + [ + -1, + -1, + -1, + 1, + 1, + 1, + 0, + 0, + 0 + ], + [ + -1, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + -1, + -1, + 0, + -1, + -1, + 0, + -1, + -1, + 0 + ], + [ + -1, + -1, + 0, + -1, + -1, + 0, + 0, + 0, + 0 + ], + [ + -1, + -1, + 0, + -1, + -1, + 0, + 1, + 1, + 0 + ], + [ + -1, + -1, + 0, + 0, + 0, + 0, + -1, + -1, + 0 + ], + [ + -1, + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + -1, + 0, + 0, + 0, + 0, + 1, + 1, + 0 + ], + [ + -1, + -1, + 0, + 1, + 1, + 0, + -1, + -1, + 0 + ], + [ + -1, + -1, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + -1, + 0, + 1, + 1, + 0, + 1, + 1, + 0 + ], + [ + -1, + -1, + 1, + -1, + -1, + 1, + -1, + -1, + 1 + ], + [ + -1, + -1, + 1, + -1, + -1, + 1, + 0, + 0, + 0 + ], + [ + -1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + -1 + ], + [ + -1, + -1, + 1, + 0, + 0, + 0, + -1, + -1, + 1 + ], + [ + -1, + -1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + -1, + 1, + 0, + 0, + 0, + 1, + 1, + -1 + ], + [ + -1, + -1, + 1, + 1, + 1, + -1, + -1, + -1, + 1 + ], + [ + -1, + -1, + 1, + 1, + 1, + -1, + 0, + 0, + 0 + ], + [ + -1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1 + ], + [ + -1, + 0, + -1, + -1, + 0, + -1, + -1, + 0, + -1 + ], + [ + -1, + 0, + -1, + -1, + 0, + -1, + 0, + 0, + 0 + ], + [ + -1, + 0, + -1, + -1, + 0, + -1, + 1, + 0, + 1 + ], + [ + -1, + 0, + -1, + 0, + 0, + 0, + -1, + 0, + -1 + ], + [ + -1, + 0, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + -1, + 0, + 0, + 0, + 1, + 0, + 1 + ], + [ + -1, + 0, + -1, + 1, + 0, + 1, + -1, + 0, + -1 + ], + [ + -1, + 0, + -1, + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + -1, + 1, + 0, + 1, + 1, + 0, + 1 + ], + [ + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0 + ], + [ + -1, + 0, + 0, + -1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 1, + -1, + 0, + 1, + -1, + 0, + 1 + ], + [ + -1, + 0, + 1, + -1, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + -1, + 0, + 1, + 1, + 0, + -1 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + -1, + 0, + 1 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + -1 + ], + [ + -1, + 0, + 1, + 1, + 0, + -1, + -1, + 0, + 1 + ], + [ + -1, + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + -1, + 1, + 0, + -1 + ], + [ + -1, + 1, + -1, + -1, + 1, + -1, + -1, + 1, + -1 + ], + [ + -1, + 1, + -1, + -1, + 1, + -1, + 0, + 0, + 0 + ], + [ + -1, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1 + ], + [ + -1, + 1, + -1, + 0, + 0, + 0, + -1, + 1, + -1 + ], + [ + -1, + 1, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + -1, + 0, + 0, + 0, + 1, + -1, + 1 + ], + [ + -1, + 1, + -1, + 1, + -1, + 1, + -1, + 1, + -1 + ], + [ + -1, + 1, + -1, + 1, + -1, + 1, + 0, + 0, + 0 + ], + [ + -1, + 1, + -1, + 1, + -1, + 1, + 1, + -1, + 1 + ], + [ + -1, + 1, + 0, + -1, + 1, + 0, + -1, + 1, + 0 + ], + [ + -1, + 1, + 0, + -1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 0, + -1, + 1, + 0, + 1, + -1, + 0 + ], + [ + -1, + 1, + 0, + 0, + 0, + 0, + -1, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 0, + 0, + 0, + 0, + 1, + -1, + 0 + ], + [ + -1, + 1, + 0, + 1, + -1, + 0, + -1, + 1, + 0 + ], + [ + -1, + 1, + 0, + 1, + -1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 0, + 1, + -1, + 0, + 1, + -1, + 0 + ], + [ + -1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + 1 + ], + [ + -1, + 1, + 1, + -1, + 1, + 1, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + -1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + -1, + 1, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 1, + -1, + -1 + ], + [ + -1, + 1, + 1, + 1, + -1, + -1, + -1, + 1, + 1 + ], + [ + -1, + 1, + 1, + 1, + -1, + -1, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 1, + -1, + -1, + 1, + -1, + -1 + ], + [ + 0, + -2, + -2, + 0, + -2, + -2, + 0, + -2, + -2 + ], + [ + 0, + -2, + -2, + 0, + -2, + -2, + 0, + 0, + 0 + ], + [ + 0, + -2, + -2, + 0, + -2, + -2, + 0, + 2, + 2 + ], + [ + 0, + -2, + -2, + 0, + 0, + 0, + 0, + -2, + -2 + ], + [ + 0, + -2, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + -2, + -2, + 0, + 0, + 0, + 0, + 2, + 2 + ], + [ + 0, + -2, + -2, + 0, + 2, + 2, + 0, + -2, + -2 + ], + [ + 0, + -2, + -2, + 0, + 2, + 2, + 0, + 0, + 0 + ], + [ + 0, + -2, + -2, + 0, + 2, + 2, + 0, + 2, + 2 + ], + [ + 0, + -2, + 0, + 0, + -2, + 0, + 0, + -2, + 0 + ], + [ + 0, + -2, + 0, + 0, + -2, + 0, + 0, + 0, + 0 + ], + [ + 0, + -2, + 0, + 0, + -2, + 0, + 0, + 2, + 0 + ], + [ + 0, + -2, + 0, + 0, + 0, + 0, + 0, + -2, + 0 + ], + [ + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + [ + 0, + -2, + 0, + 0, + 2, + 0, + 0, + -2, + 0 + ], + [ + 0, + -2, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + -2, + 0, + 0, + 2, + 0, + 0, + 2, + 0 + ], + [ + 0, + -2, + 2, + 0, + -2, + 2, + 0, + -2, + 2 + ], + [ + 0, + -2, + 2, + 0, + -2, + 2, + 0, + 0, + 0 + ], + [ + 0, + -2, + 2, + 0, + -2, + 2, + 0, + 2, + -2 + ], + [ + 0, + -2, + 2, + 0, + 0, + 0, + 0, + -2, + 2 + ], + [ + 0, + -2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + -2, + 2, + 0, + 0, + 0, + 0, + 2, + -2 + ], + [ + 0, + -2, + 2, + 0, + 2, + -2, + 0, + -2, + 2 + ], + [ + 0, + -2, + 2, + 0, + 2, + -2, + 0, + 0, + 0 + ], + [ + 0, + -2, + 2, + 0, + 2, + -2, + 0, + 2, + -2 + ], + [ + 0, + -1, + -1, + 0, + -1, + -1, + 0, + -1, + -1 + ], + [ + 0, + -1, + -1, + 0, + -1, + -1, + 0, + 0, + 0 + ], + [ + 0, + -1, + -1, + 0, + -1, + -1, + 0, + 1, + 1 + ], + [ + 0, + -1, + -1, + 0, + 0, + 0, + 0, + -1, + -1 + ], + [ + 0, + -1, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + -1, + -1, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + 0, + -1, + -1, + 0, + 1, + 1, + 0, + -1, + -1 + ], + [ + 0, + -1, + -1, + 0, + 1, + 1, + 0, + 0, + 0 + ], + [ + 0, + -1, + -1, + 0, + 1, + 1, + 0, + 1, + 1 + ], + [ + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0 + ], + [ + 0, + -1, + 0, + 0, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + -1, + 0, + 0, + -1, + 0, + 0, + 1, + 0 + ], + [ + 0, + -1, + 0, + 0, + 0, + 0, + 0, + -1, + 0 + ], + [ + 0, + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + -1, + 0, + 0, + 1, + 0, + 0, + -1, + 0 + ], + [ + 0, + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + -1, + 0, + 0, + 1, + 0, + 0, + 1, + 0 + ], + [ + 0, + -1, + 1, + 0, + -1, + 1, + 0, + -1, + 1 + ], + [ + 0, + -1, + 1, + 0, + -1, + 1, + 0, + 0, + 0 + ], + [ + 0, + -1, + 1, + 0, + -1, + 1, + 0, + 1, + -1 + ], + [ + 0, + -1, + 1, + 0, + 0, + 0, + 0, + -1, + 1 + ], + [ + 0, + -1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + -1, + 1, + 0, + 0, + 0, + 0, + 1, + -1 + ], + [ + 0, + -1, + 1, + 0, + 1, + -1, + 0, + -1, + 1 + ], + [ + 0, + -1, + 1, + 0, + 1, + -1, + 0, + 0, + 0 + ], + [ + 0, + -1, + 1, + 0, + 1, + -1, + 0, + 1, + -1 + ], + [ + 0, + 0, + -2, + 0, + 0, + -2, + 0, + 0, + -2 + ], + [ + 0, + 0, + -2, + 0, + 0, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + -2, + 0, + 0, + -2, + 0, + 0, + 2 + ], + [ + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + -2 + ], + [ + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0, + -2 + ], + [ + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1 + ], + [ + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + 1 + ], + [ + 0, + 0, + -1, + 0, + 0, + 0, + 0, + 0, + -1 + ], + [ + 0, + 0, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + -1, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0, + -1 + ], + [ + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0, + 1 + ], + [ + 0, + 0, + 0, + -2, + -2, + -2, + -2, + -2, + -2 + ], + [ + 0, + 0, + 0, + -2, + -2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + -2, + -2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + -2, + -2, + 0, + -2, + -2, + 0 + ], + [ + 0, + 0, + 0, + -2, + -2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + -2, + 0, + 2, + 2, + 0 + ], + [ + 0, + 0, + 0, + -2, + -2, + 2, + -2, + -2, + 2 + ], + [ + 0, + 0, + 0, + -2, + -2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + -2, + 2, + 2, + 2, + -2 + ], + [ + 0, + 0, + 0, + -2, + 0, + -2, + -2, + 0, + -2 + ], + [ + 0, + 0, + 0, + -2, + 0, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 0, + -2, + 2, + 0, + 2 + ], + [ + 0, + 0, + 0, + -2, + 0, + 0, + -2, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 0, + 2, + -2, + 0, + 2 + ], + [ + 0, + 0, + 0, + -2, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 0, + 2, + 2, + 0, + -2 + ], + [ + 0, + 0, + 0, + -2, + 2, + -2, + -2, + 2, + -2 + ], + [ + 0, + 0, + 0, + -2, + 2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 2, + -2, + 2, + -2, + 2 + ], + [ + 0, + 0, + 0, + -2, + 2, + 0, + -2, + 2, + 0 + ], + [ + 0, + 0, + 0, + -2, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 2, + 0, + 2, + -2, + 0 + ], + [ + 0, + 0, + 0, + -2, + 2, + 2, + -2, + 2, + 2 + ], + [ + 0, + 0, + 0, + -2, + 2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -2, + 2, + 2, + 2, + -2, + -2 + ], + [ + 0, + 0, + 0, + -1, + -1, + -1, + -1, + -1, + -1 + ], + [ + 0, + 0, + 0, + -1, + -1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + -1, + -1, + 1, + 1, + 1 + ], + [ + 0, + 0, + 0, + -1, + -1, + 0, + -1, + -1, + 0 + ], + [ + 0, + 0, + 0, + -1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + -1, + 0, + 1, + 1, + 0 + ], + [ + 0, + 0, + 0, + -1, + -1, + 1, + -1, + -1, + 1 + ], + [ + 0, + 0, + 0, + -1, + -1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + -1, + 1, + 1, + 1, + -1 + ], + [ + 0, + 0, + 0, + -1, + 0, + -1, + -1, + 0, + -1 + ], + [ + 0, + 0, + 0, + -1, + 0, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 0, + -1, + 1, + 0, + 1 + ], + [ + 0, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 0, + 1, + -1, + 0, + 1 + ], + [ + 0, + 0, + 0, + -1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 0, + 1, + 1, + 0, + -1 + ], + [ + 0, + 0, + 0, + -1, + 1, + -1, + -1, + 1, + -1 + ], + [ + 0, + 0, + 0, + -1, + 1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 0, + 0, + 0, + -1, + 1, + 0, + -1, + 1, + 0 + ], + [ + 0, + 0, + 0, + -1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 1, + 0, + 1, + -1, + 0 + ], + [ + 0, + 0, + 0, + -1, + 1, + 1, + -1, + 1, + 1 + ], + [ + 0, + 0, + 0, + -1, + 1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + -1, + 1, + 1, + 1, + -1, + -1 + ], + [ + 0, + 0, + 0, + 0, + -2, + -2, + 0, + -2, + -2 + ], + [ + 0, + 0, + 0, + 0, + -2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + -2, + -2, + 0, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + -2, + 0, + 0, + -2, + 0 + ], + [ + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 2, + 0 + ], + [ + 0, + 0, + 0, + 0, + -2, + 2, + 0, + -2, + 2 + ], + [ + 0, + 0, + 0, + 0, + -2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + -2, + 2, + 0, + 2, + -2 + ], + [ + 0, + 0, + 0, + 0, + -1, + -1, + 0, + -1, + -1 + ], + [ + 0, + 0, + 0, + 0, + -1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + -1, + -1, + 0, + 1, + 1 + ], + [ + 0, + 0, + 0, + 0, + -1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + -1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + -1, + 1, + 0, + -1, + 1 + ], + [ + 0, + 0, + 0, + 0, + -1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + -1, + 1, + 0, + 1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 0, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + -2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + -2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + -2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + -1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + -1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + -1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + -1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + -1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 1, + -1, + 0, + -1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + -1, + 0, + 1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 1, + 0, + -1, + -1 + ], + [ + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 2, + -2, + 0, + -2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 2, + 0, + 0, + -2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + -2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2 + ], + [ + 0, + 0, + 0, + 1, + -1, + -1, + -1, + 1, + 1 + ], + [ + 0, + 0, + 0, + 1, + -1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + -1, + -1, + 1, + -1, + -1 + ], + [ + 0, + 0, + 0, + 1, + -1, + 0, + -1, + 1, + 0 + ], + [ + 0, + 0, + 0, + 1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + -1, + 0, + 1, + -1, + 0 + ], + [ + 0, + 0, + 0, + 1, + -1, + 1, + -1, + 1, + -1 + ], + [ + 0, + 0, + 0, + 1, + -1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 0, + 0, + 0, + 1, + 0, + -1, + -1, + 0, + 1 + ], + [ + 0, + 0, + 0, + 1, + 0, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + -1, + 1, + 0, + -1 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 1, + -1, + 0, + -1 + ], + [ + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1 + ], + [ + 0, + 0, + 0, + 1, + 1, + -1, + -1, + -1, + 1 + ], + [ + 0, + 0, + 0, + 1, + 1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 1, + -1, + 1, + 1, + -1 + ], + [ + 0, + 0, + 0, + 1, + 1, + 0, + -1, + -1, + 0 + ], + [ + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0 + ], + [ + 0, + 0, + 0, + 1, + 1, + 1, + -1, + -1, + -1 + ], + [ + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 0, + 0, + 0, + 2, + -2, + -2, + -2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 2, + -2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + -2, + -2, + 2, + -2, + -2 + ], + [ + 0, + 0, + 0, + 2, + -2, + 0, + -2, + 2, + 0 + ], + [ + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + -2, + 0, + 2, + -2, + 0 + ], + [ + 0, + 0, + 0, + 2, + -2, + 2, + -2, + 2, + -2 + ], + [ + 0, + 0, + 0, + 2, + -2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + -2, + 2, + 2, + -2, + 2 + ], + [ + 0, + 0, + 0, + 2, + 0, + -2, + -2, + 0, + 2 + ], + [ + 0, + 0, + 0, + 2, + 0, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + -2, + 2, + 0, + -2 + ], + [ + 0, + 0, + 0, + 2, + 0, + 0, + -2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + 2, + -2, + 0, + -2 + ], + [ + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 2 + ], + [ + 0, + 0, + 0, + 2, + 2, + -2, + -2, + -2, + 2 + ], + [ + 0, + 0, + 0, + 2, + 2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 2, + -2, + 2, + 2, + -2 + ], + [ + 0, + 0, + 0, + 2, + 2, + 0, + -2, + -2, + 0 + ], + [ + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0 + ], + [ + 0, + 0, + 0, + 2, + 2, + 2, + -2, + -2, + -2 + ], + [ + 0, + 0, + 0, + 2, + 2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + -1 + ], + [ + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + 1 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + -1 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + -1 + ], + [ + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1 + ], + [ + 0, + 0, + 2, + 0, + 0, + -2, + 0, + 0, + -2 + ], + [ + 0, + 0, + 2, + 0, + 0, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 2, + 0, + 0, + -2, + 0, + 0, + 2 + ], + [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + -2 + ], + [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + -2 + ], + [ + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 1, + -1, + 0, + -1, + 1, + 0, + -1, + 1 + ], + [ + 0, + 1, + -1, + 0, + -1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 1, + -1, + 0, + -1, + 1, + 0, + 1, + -1 + ], + [ + 0, + 1, + -1, + 0, + 0, + 0, + 0, + -1, + 1 + ], + [ + 0, + 1, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1, + -1, + 0, + 0, + 0, + 0, + 1, + -1 + ], + [ + 0, + 1, + -1, + 0, + 1, + -1, + 0, + -1, + 1 + ], + [ + 0, + 1, + -1, + 0, + 1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 1, + -1, + 0, + 1, + -1, + 0, + 1, + -1 + ], + [ + 0, + 1, + 0, + 0, + -1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 1, + 0, + 0, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1, + 0, + 0, + -1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + -1, + 0 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 1, + 0, + 0, + 1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 1, + 1, + 0, + -1, + -1, + 0, + -1, + -1 + ], + [ + 0, + 1, + 1, + 0, + -1, + -1, + 0, + 0, + 0 + ], + [ + 0, + 1, + 1, + 0, + -1, + -1, + 0, + 1, + 1 + ], + [ + 0, + 1, + 1, + 0, + 0, + 0, + 0, + -1, + -1 + ], + [ + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + 0, + 1, + 1, + 0, + 1, + 1, + 0, + -1, + -1 + ], + [ + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0 + ], + [ + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1 + ], + [ + 0, + 2, + -2, + 0, + -2, + 2, + 0, + -2, + 2 + ], + [ + 0, + 2, + -2, + 0, + -2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 2, + -2, + 0, + -2, + 2, + 0, + 2, + -2 + ], + [ + 0, + 2, + -2, + 0, + 0, + 0, + 0, + -2, + 2 + ], + [ + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 2, + -2 + ], + [ + 0, + 2, + -2, + 0, + 2, + -2, + 0, + -2, + 2 + ], + [ + 0, + 2, + -2, + 0, + 2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 2, + -2, + 0, + 2, + -2, + 0, + 2, + -2 + ], + [ + 0, + 2, + 0, + 0, + -2, + 0, + 0, + -2, + 0 + ], + [ + 0, + 2, + 0, + 0, + -2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 0, + 0, + -2, + 0, + 0, + 2, + 0 + ], + [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + -2, + 0 + ], + [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + [ + 0, + 2, + 0, + 0, + 2, + 0, + 0, + -2, + 0 + ], + [ + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0 + ], + [ + 0, + 2, + 2, + 0, + -2, + -2, + 0, + -2, + -2 + ], + [ + 0, + 2, + 2, + 0, + -2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 2, + 2, + 0, + -2, + -2, + 0, + 2, + 2 + ], + [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + -2, + -2 + ], + [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2 + ], + [ + 0, + 2, + 2, + 0, + 2, + 2, + 0, + -2, + -2 + ], + [ + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2 + ], + [ + 1, + -1, + -1, + -1, + 1, + 1, + -1, + 1, + 1 + ], + [ + 1, + -1, + -1, + -1, + 1, + 1, + 0, + 0, + 0 + ], + [ + 1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + -1 + ], + [ + 1, + -1, + -1, + 0, + 0, + 0, + -1, + 1, + 1 + ], + [ + 1, + -1, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + -1, + 0, + 0, + 0, + 1, + -1, + -1 + ], + [ + 1, + -1, + -1, + 1, + -1, + -1, + -1, + 1, + 1 + ], + [ + 1, + -1, + -1, + 1, + -1, + -1, + 0, + 0, + 0 + ], + [ + 1, + -1, + -1, + 1, + -1, + -1, + 1, + -1, + -1 + ], + [ + 1, + -1, + 0, + -1, + 1, + 0, + -1, + 1, + 0 + ], + [ + 1, + -1, + 0, + -1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + 0, + -1, + 1, + 0, + 1, + -1, + 0 + ], + [ + 1, + -1, + 0, + 0, + 0, + 0, + -1, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + 0, + 0, + 0, + 0, + 1, + -1, + 0 + ], + [ + 1, + -1, + 0, + 1, + -1, + 0, + -1, + 1, + 0 + ], + [ + 1, + -1, + 0, + 1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + 0, + 1, + -1, + 0, + 1, + -1, + 0 + ], + [ + 1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + -1 + ], + [ + 1, + -1, + 1, + -1, + 1, + -1, + 0, + 0, + 0 + ], + [ + 1, + -1, + 1, + -1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 1, + 0, + 0, + 0, + -1, + 1, + -1 + ], + [ + 1, + -1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + 1, + 0, + 0, + 0, + 1, + -1, + 1 + ], + [ + 1, + -1, + 1, + 1, + -1, + 1, + -1, + 1, + -1 + ], + [ + 1, + -1, + 1, + 1, + -1, + 1, + 0, + 0, + 0 + ], + [ + 1, + -1, + 1, + 1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 1, + 0, + -1, + -1, + 0, + 1, + -1, + 0, + 1 + ], + [ + 1, + 0, + -1, + -1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + -1, + -1, + 0, + 1, + 1, + 0, + -1 + ], + [ + 1, + 0, + -1, + 0, + 0, + 0, + -1, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + -1, + 0, + 0, + 0, + 1, + 0, + -1 + ], + [ + 1, + 0, + -1, + 1, + 0, + -1, + -1, + 0, + 1 + ], + [ + 1, + 0, + -1, + 1, + 0, + -1, + 0, + 0, + 0 + ], + [ + 1, + 0, + -1, + 1, + 0, + -1, + 1, + 0, + -1 + ], + [ + 1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 1, + -1, + 0, + -1, + -1, + 0, + -1 + ], + [ + 1, + 0, + 1, + -1, + 0, + -1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + -1, + 0, + -1, + 1, + 0, + 1 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + -1, + 0, + -1 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1 + ], + [ + 1, + 0, + 1, + 1, + 0, + 1, + -1, + 0, + -1 + ], + [ + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1 + ], + [ + 1, + 1, + -1, + -1, + -1, + 1, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + -1, + -1, + 1, + 0, + 0, + 0 + ], + [ + 1, + 1, + -1, + -1, + -1, + 1, + 1, + 1, + -1 + ], + [ + 1, + 1, + -1, + 0, + 0, + 0, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + -1, + 0, + 0, + 0, + 1, + 1, + -1 + ], + [ + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + 1, + 1, + -1, + 0, + 0, + 0 + ], + [ + 1, + 1, + -1, + 1, + 1, + -1, + 1, + 1, + -1 + ], + [ + 1, + 1, + 0, + -1, + -1, + 0, + -1, + -1, + 0 + ], + [ + 1, + 1, + 0, + -1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 0, + -1, + -1, + 0, + 1, + 1, + 0 + ], + [ + 1, + 1, + 0, + 0, + 0, + 0, + -1, + -1, + 0 + ], + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0 + ], + [ + 1, + 1, + 0, + 1, + 1, + 0, + -1, + -1, + 0 + ], + [ + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0 + ], + [ + 1, + 1, + 1, + -1, + -1, + -1, + -1, + -1, + -1 + ], + [ + 1, + 1, + 1, + -1, + -1, + -1, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + 1 + ], + [ + 1, + 1, + 1, + 0, + 0, + 0, + -1, + -1, + -1 + ], + [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1, + -1, + -1, + -1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + -2, + -2, + -2, + 2, + 2, + -2, + 2, + 2 + ], + [ + 2, + -2, + -2, + -2, + 2, + 2, + 0, + 0, + 0 + ], + [ + 2, + -2, + -2, + -2, + 2, + 2, + 2, + -2, + -2 + ], + [ + 2, + -2, + -2, + 0, + 0, + 0, + -2, + 2, + 2 + ], + [ + 2, + -2, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + -2, + -2, + 0, + 0, + 0, + 2, + -2, + -2 + ], + [ + 2, + -2, + -2, + 2, + -2, + -2, + -2, + 2, + 2 + ], + [ + 2, + -2, + -2, + 2, + -2, + -2, + 0, + 0, + 0 + ], + [ + 2, + -2, + -2, + 2, + -2, + -2, + 2, + -2, + -2 + ], + [ + 2, + -2, + 0, + -2, + 2, + 0, + -2, + 2, + 0 + ], + [ + 2, + -2, + 0, + -2, + 2, + 0, + 0, + 0, + 0 + ], + [ + 2, + -2, + 0, + -2, + 2, + 0, + 2, + -2, + 0 + ], + [ + 2, + -2, + 0, + 0, + 0, + 0, + -2, + 2, + 0 + ], + [ + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + -2, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + 2, + -2, + 0, + 2, + -2, + 0, + -2, + 2, + 0 + ], + [ + 2, + -2, + 0, + 2, + -2, + 0, + 0, + 0, + 0 + ], + [ + 2, + -2, + 0, + 2, + -2, + 0, + 2, + -2, + 0 + ], + [ + 2, + -2, + 2, + -2, + 2, + -2, + -2, + 2, + -2 + ], + [ + 2, + -2, + 2, + -2, + 2, + -2, + 0, + 0, + 0 + ], + [ + 2, + -2, + 2, + -2, + 2, + -2, + 2, + -2, + 2 + ], + [ + 2, + -2, + 2, + 0, + 0, + 0, + -2, + 2, + -2 + ], + [ + 2, + -2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + -2, + 2, + 0, + 0, + 0, + 2, + -2, + 2 + ], + [ + 2, + -2, + 2, + 2, + -2, + 2, + -2, + 2, + -2 + ], + [ + 2, + -2, + 2, + 2, + -2, + 2, + 0, + 0, + 0 + ], + [ + 2, + -2, + 2, + 2, + -2, + 2, + 2, + -2, + 2 + ], + [ + 2, + 0, + -2, + -2, + 0, + 2, + -2, + 0, + 2 + ], + [ + 2, + 0, + -2, + -2, + 0, + 2, + 0, + 0, + 0 + ], + [ + 2, + 0, + -2, + -2, + 0, + 2, + 2, + 0, + -2 + ], + [ + 2, + 0, + -2, + 0, + 0, + 0, + -2, + 0, + 2 + ], + [ + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + -2, + 0, + 0, + 0, + 2, + 0, + -2 + ], + [ + 2, + 0, + -2, + 2, + 0, + -2, + -2, + 0, + 2 + ], + [ + 2, + 0, + -2, + 2, + 0, + -2, + 0, + 0, + 0 + ], + [ + 2, + 0, + -2, + 2, + 0, + -2, + 2, + 0, + -2 + ], + [ + 2, + 0, + 0, + -2, + 0, + 0, + -2, + 0, + 0 + ], + [ + 2, + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + [ + 2, + 0, + 0, + 2, + 0, + 0, + -2, + 0, + 0 + ], + [ + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0 + ], + [ + 2, + 0, + 2, + -2, + 0, + -2, + -2, + 0, + -2 + ], + [ + 2, + 0, + 2, + -2, + 0, + -2, + 0, + 0, + 0 + ], + [ + 2, + 0, + 2, + -2, + 0, + -2, + 2, + 0, + 2 + ], + [ + 2, + 0, + 2, + 0, + 0, + 0, + -2, + 0, + -2 + ], + [ + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 2 + ], + [ + 2, + 0, + 2, + 2, + 0, + 2, + -2, + 0, + -2 + ], + [ + 2, + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0 + ], + [ + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0, + 2 + ], + [ + 2, + 2, + -2, + -2, + -2, + 2, + -2, + -2, + 2 + ], + [ + 2, + 2, + -2, + -2, + -2, + 2, + 0, + 0, + 0 + ], + [ + 2, + 2, + -2, + -2, + -2, + 2, + 2, + 2, + -2 + ], + [ + 2, + 2, + -2, + 0, + 0, + 0, + -2, + -2, + 2 + ], + [ + 2, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 2, + -2, + 0, + 0, + 0, + 2, + 2, + -2 + ], + [ + 2, + 2, + -2, + 2, + 2, + -2, + -2, + -2, + 2 + ], + [ + 2, + 2, + -2, + 2, + 2, + -2, + 0, + 0, + 0 + ], + [ + 2, + 2, + -2, + 2, + 2, + -2, + 2, + 2, + -2 + ], + [ + 2, + 2, + 0, + -2, + -2, + 0, + -2, + -2, + 0 + ], + [ + 2, + 2, + 0, + -2, + -2, + 0, + 0, + 0, + 0 + ], + [ + 2, + 2, + 0, + -2, + -2, + 0, + 2, + 2, + 0 + ], + [ + 2, + 2, + 0, + 0, + 0, + 0, + -2, + -2, + 0 + ], + [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0 + ], + [ + 2, + 2, + 0, + 2, + 2, + 0, + -2, + -2, + 0 + ], + [ + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0 + ], + [ + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 0 + ], + [ + 2, + 2, + 2, + -2, + -2, + -2, + -2, + -2, + -2 + ], + [ + 2, + 2, + 2, + -2, + -2, + -2, + 0, + 0, + 0 + ], + [ + 2, + 2, + 2, + -2, + -2, + -2, + 2, + 2, + 2 + ], + [ + 2, + 2, + 2, + 0, + 0, + 0, + -2, + -2, + -2 + ], + [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + -2, + -2, + -2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "decompositions_three": [ + [ + 170, + 642, + 664 + ], + [ + 186, + 622, + 666 + ], + [ + 254, + 598, + 674 + ], + [ + 258, + 618, + 656 + ], + [ + 433, + 596, + 672 + ], + [ + 441, + 614, + 652 + ], + [ + 493, + 604, + 648 + ], + [ + 513, + 606, + 628 + ] + ], + "decompositions_four": [ + [ + 4, + 614, + 652, + 675 + ], + [ + 5, + 614, + 652, + 674 + ], + [ + 7, + 614, + 652, + 672 + ], + [ + 8, + 614, + 652, + 671 + ], + [ + 8, + 631, + 642, + 664 + ], + [ + 10, + 605, + 655, + 675 + ], + [ + 15, + 622, + 642, + 666 + ], + [ + 16, + 605, + 652, + 672 + ], + [ + 16, + 622, + 642, + 665 + ], + [ + 17, + 622, + 642, + 664 + ], + [ + 21, + 596, + 656, + 672 + ], + [ + 22, + 596, + 655, + 672 + ], + [ + 24, + 596, + 653, + 672 + ], + [ + 24, + 622, + 633, + 666 + ], + [ + 25, + 596, + 652, + 672 + ], + [ + 29, + 604, + 648, + 664 + ], + [ + 30, + 615, + 625, + 675 + ], + [ + 32, + 604, + 645, + 664 + ], + [ + 32, + 614, + 625, + 674 + ], + [ + 35, + 604, + 642, + 664 + ], + [ + 36, + 606, + 628, + 675 + ], + [ + 38, + 604, + 648, + 655 + ], + [ + 42, + 615, + 622, + 666 + ], + [ + 44, + 595, + 642, + 664 + ], + [ + 45, + 606, + 628, + 666 + ], + [ + 48, + 596, + 645, + 656 + ], + [ + 48, + 606, + 625, + 666 + ], + [ + 50, + 595, + 645, + 655 + ], + [ + 51, + 606, + 622, + 666 + ], + [ + 55, + 598, + 618, + 674 + ], + [ + 56, + 598, + 617, + 674 + ], + [ + 56, + 604, + 637, + 648 + ], + [ + 58, + 598, + 615, + 674 + ], + [ + 59, + 598, + 614, + 674 + ], + [ + 63, + 606, + 628, + 648 + ], + [ + 64, + 598, + 618, + 665 + ], + [ + 64, + 605, + 628, + 648 + ], + [ + 65, + 604, + 628, + 648 + ], + [ + 70, + 595, + 615, + 665 + ], + [ + 72, + 599, + 618, + 656 + ], + [ + 72, + 606, + 628, + 639 + ], + [ + 73, + 598, + 618, + 656 + ], + [ + 75, + 596, + 618, + 656 + ], + [ + 76, + 595, + 618, + 656 + ], + [ + 89, + 514, + 642, + 664 + ], + [ + 89, + 594, + 614, + 652 + ], + [ + 105, + 534, + 622, + 666 + ], + [ + 105, + 574, + 596, + 672 + ], + [ + 137, + 534, + 598, + 674 + ], + [ + 137, + 574, + 604, + 648 + ], + [ + 153, + 514, + 618, + 656 + ], + [ + 153, + 594, + 606, + 628 + ], + [ + 164, + 513, + 606, + 664 + ], + [ + 166, + 379, + 631, + 675 + ], + [ + 166, + 387, + 642, + 664 + ], + [ + 167, + 254, + 634, + 674 + ], + [ + 167, + 256, + 645, + 664 + ], + [ + 167, + 379, + 632, + 674 + ], + [ + 167, + 386, + 642, + 664 + ], + [ + 167, + 490, + 614, + 674 + ], + [ + 167, + 510, + 606, + 664 + ], + [ + 168, + 513, + 628, + 642 + ], + [ + 169, + 187, + 652, + 672 + ], + [ + 169, + 317, + 642, + 665 + ], + [ + 169, + 345, + 642, + 664 + ], + [ + 169, + 379, + 634, + 672 + ], + [ + 169, + 433, + 632, + 672 + ], + [ + 169, + 512, + 628, + 642 + ], + [ + 170, + 177, + 664, + 669 + ], + [ + 170, + 186, + 653, + 671 + ], + [ + 170, + 186, + 658, + 666 + ], + [ + 170, + 186, + 659, + 665 + ], + [ + 170, + 186, + 660, + 664 + ], + [ + 170, + 186, + 661, + 663 + ], + [ + 170, + 186, + 662, + 662 + ], + [ + 170, + 218, + 642, + 673 + ], + [ + 170, + 244, + 645, + 664 + ], + [ + 170, + 245, + 644, + 664 + ], + [ + 170, + 254, + 637, + 671 + ], + [ + 170, + 313, + 642, + 665 + ], + [ + 170, + 332, + 641, + 665 + ], + [ + 170, + 360, + 641, + 664 + ], + [ + 170, + 379, + 635, + 671 + ], + [ + 170, + 379, + 644, + 662 + ], + [ + 170, + 380, + 645, + 661 + ], + [ + 170, + 433, + 633, + 671 + ], + [ + 170, + 436, + 642, + 662 + ], + [ + 170, + 437, + 642, + 661 + ], + [ + 170, + 453, + 633, + 664 + ], + [ + 170, + 457, + 642, + 655 + ], + [ + 170, + 493, + 617, + 671 + ], + [ + 170, + 493, + 640, + 648 + ], + [ + 170, + 493, + 641, + 647 + ], + [ + 170, + 493, + 642, + 646 + ], + [ + 170, + 493, + 643, + 645 + ], + [ + 170, + 493, + 644, + 644 + ], + [ + 170, + 498, + 615, + 664 + ], + [ + 170, + 502, + 637, + 642 + ], + [ + 170, + 507, + 606, + 664 + ], + [ + 170, + 511, + 628, + 642 + ], + [ + 170, + 534, + 574, + 671 + ], + [ + 170, + 534, + 588, + 664 + ], + [ + 170, + 561, + 561, + 664 + ], + [ + 170, + 574, + 592, + 642 + ], + [ + 170, + 583, + 583, + 642 + ], + [ + 171, + 493, + 604, + 675 + ], + [ + 173, + 513, + 606, + 655 + ], + [ + 174, + 253, + 625, + 675 + ], + [ + 174, + 258, + 645, + 656 + ], + [ + 176, + 254, + 625, + 674 + ], + [ + 176, + 259, + 645, + 655 + ], + [ + 177, + 179, + 652, + 672 + ], + [ + 177, + 218, + 631, + 675 + ], + [ + 177, + 244, + 625, + 675 + ], + [ + 177, + 259, + 628, + 672 + ], + [ + 177, + 383, + 625, + 672 + ], + [ + 177, + 434, + 622, + 672 + ], + [ + 177, + 453, + 622, + 666 + ], + [ + 177, + 502, + 598, + 672 + ], + [ + 177, + 504, + 625, + 645 + ], + [ + 177, + 513, + 628, + 633 + ], + [ + 177, + 514, + 574, + 672 + ], + [ + 178, + 178, + 652, + 672 + ], + [ + 178, + 245, + 625, + 674 + ], + [ + 178, + 249, + 645, + 656 + ], + [ + 178, + 382, + 625, + 672 + ], + [ + 178, + 384, + 645, + 652 + ], + [ + 178, + 433, + 623, + 672 + ], + [ + 178, + 441, + 641, + 652 + ], + [ + 178, + 503, + 625, + 645 + ], + [ + 179, + 186, + 649, + 666 + ], + [ + 179, + 224, + 642, + 664 + ], + [ + 179, + 250, + 645, + 655 + ], + [ + 179, + 253, + 648, + 652 + ], + [ + 179, + 383, + 645, + 652 + ], + [ + 179, + 440, + 642, + 652 + ], + [ + 179, + 459, + 633, + 655 + ], + [ + 179, + 493, + 631, + 648 + ], + [ + 179, + 502, + 625, + 645 + ], + [ + 179, + 504, + 618, + 652 + ], + [ + 179, + 534, + 594, + 652 + ], + [ + 180, + 493, + 604, + 666 + ], + [ + 183, + 256, + 625, + 666 + ], + [ + 183, + 258, + 636, + 656 + ], + [ + 183, + 380, + 622, + 666 + ], + [ + 183, + 387, + 632, + 656 + ], + [ + 183, + 490, + 604, + 666 + ], + [ + 183, + 510, + 596, + 656 + ], + [ + 184, + 379, + 622, + 666 + ], + [ + 184, + 387, + 633, + 655 + ], + [ + 186, + 216, + 622, + 675 + ], + [ + 186, + 224, + 631, + 666 + ], + [ + 186, + 249, + 626, + 666 + ], + [ + 186, + 250, + 625, + 666 + ], + [ + 186, + 258, + 639, + 653 + ], + [ + 186, + 317, + 623, + 666 + ], + [ + 186, + 345, + 623, + 665 + ], + [ + 186, + 362, + 622, + 665 + ], + [ + 186, + 386, + 625, + 663 + ], + [ + 186, + 387, + 626, + 662 + ], + [ + 186, + 387, + 635, + 653 + ], + [ + 186, + 437, + 622, + 663 + ], + [ + 186, + 438, + 622, + 662 + ], + [ + 186, + 441, + 631, + 653 + ], + [ + 186, + 459, + 622, + 657 + ], + [ + 186, + 487, + 604, + 666 + ], + [ + 186, + 495, + 622, + 648 + ], + [ + 186, + 496, + 595, + 666 + ], + [ + 186, + 504, + 622, + 639 + ], + [ + 186, + 513, + 599, + 653 + ], + [ + 186, + 513, + 622, + 630 + ], + [ + 186, + 513, + 623, + 629 + ], + [ + 186, + 513, + 624, + 628 + ], + [ + 186, + 513, + 625, + 627 + ], + [ + 186, + 513, + 626, + 626 + ], + [ + 186, + 514, + 568, + 666 + ], + [ + 186, + 514, + 594, + 653 + ], + [ + 186, + 541, + 541, + 666 + ], + [ + 186, + 576, + 594, + 622 + ], + [ + 186, + 585, + 585, + 622 + ], + [ + 187, + 332, + 622, + 666 + ], + [ + 187, + 360, + 622, + 665 + ], + [ + 187, + 387, + 636, + 652 + ], + [ + 187, + 441, + 632, + 652 + ], + [ + 187, + 494, + 622, + 648 + ], + [ + 188, + 493, + 622, + 648 + ], + [ + 197, + 197, + 642, + 664 + ], + [ + 213, + 213, + 622, + 666 + ], + [ + 217, + 258, + 618, + 665 + ], + [ + 217, + 314, + 605, + 675 + ], + [ + 218, + 224, + 614, + 674 + ], + [ + 218, + 313, + 605, + 675 + ], + [ + 218, + 320, + 606, + 674 + ], + [ + 218, + 339, + 605, + 674 + ], + [ + 218, + 357, + 604, + 674 + ], + [ + 218, + 453, + 596, + 674 + ], + [ + 218, + 459, + 605, + 665 + ], + [ + 218, + 502, + 604, + 648 + ], + [ + 218, + 513, + 606, + 637 + ], + [ + 218, + 514, + 534, + 674 + ], + [ + 221, + 221, + 614, + 674 + ], + [ + 221, + 254, + 607, + 674 + ], + [ + 221, + 255, + 618, + 665 + ], + [ + 221, + 308, + 605, + 674 + ], + [ + 221, + 369, + 614, + 665 + ], + [ + 221, + 436, + 605, + 672 + ], + [ + 221, + 441, + 614, + 661 + ], + [ + 221, + 456, + 605, + 665 + ], + [ + 222, + 513, + 615, + 628 + ], + [ + 223, + 320, + 615, + 665 + ], + [ + 223, + 433, + 605, + 672 + ], + [ + 224, + 314, + 614, + 666 + ], + [ + 224, + 319, + 615, + 665 + ], + [ + 224, + 339, + 614, + 665 + ], + [ + 224, + 363, + 614, + 664 + ], + [ + 224, + 453, + 605, + 665 + ], + [ + 224, + 459, + 614, + 656 + ], + [ + 224, + 493, + 613, + 648 + ], + [ + 224, + 504, + 615, + 637 + ], + [ + 224, + 574, + 594, + 614 + ], + [ + 235, + 433, + 596, + 675 + ], + [ + 236, + 433, + 596, + 674 + ], + [ + 240, + 441, + 614, + 656 + ], + [ + 241, + 441, + 614, + 655 + ], + [ + 245, + 382, + 598, + 674 + ], + [ + 245, + 387, + 608, + 664 + ], + [ + 245, + 424, + 596, + 674 + ], + [ + 245, + 432, + 604, + 664 + ], + [ + 246, + 379, + 599, + 675 + ], + [ + 246, + 387, + 618, + 656 + ], + [ + 248, + 379, + 598, + 674 + ], + [ + 248, + 387, + 617, + 655 + ], + [ + 249, + 379, + 608, + 666 + ], + [ + 249, + 384, + 618, + 656 + ], + [ + 249, + 424, + 606, + 666 + ], + [ + 249, + 432, + 614, + 656 + ], + [ + 252, + 441, + 618, + 652 + ], + [ + 253, + 258, + 621, + 656 + ], + [ + 253, + 259, + 628, + 648 + ], + [ + 253, + 314, + 599, + 675 + ], + [ + 253, + 357, + 598, + 674 + ], + [ + 253, + 383, + 625, + 648 + ], + [ + 253, + 434, + 622, + 648 + ], + [ + 253, + 440, + 625, + 645 + ], + [ + 253, + 441, + 617, + 652 + ], + [ + 253, + 502, + 598, + 648 + ], + [ + 253, + 514, + 574, + 648 + ], + [ + 254, + 258, + 602, + 674 + ], + [ + 254, + 258, + 611, + 665 + ], + [ + 254, + 258, + 620, + 656 + ], + [ + 254, + 258, + 629, + 647 + ], + [ + 254, + 258, + 637, + 639 + ], + [ + 254, + 258, + 638, + 638 + ], + [ + 254, + 259, + 601, + 674 + ], + [ + 254, + 312, + 598, + 675 + ], + [ + 254, + 320, + 599, + 674 + ], + [ + 254, + 363, + 598, + 673 + ], + [ + 254, + 369, + 607, + 665 + ], + [ + 254, + 384, + 625, + 647 + ], + [ + 254, + 387, + 634, + 638 + ], + [ + 254, + 387, + 635, + 637 + ], + [ + 254, + 415, + 596, + 674 + ], + [ + 254, + 416, + 595, + 674 + ], + [ + 254, + 439, + 598, + 672 + ], + [ + 254, + 440, + 598, + 671 + ], + [ + 254, + 441, + 598, + 670 + ], + [ + 254, + 441, + 607, + 661 + ], + [ + 254, + 441, + 616, + 652 + ], + [ + 254, + 441, + 625, + 643 + ], + [ + 254, + 441, + 631, + 637 + ], + [ + 254, + 441, + 634, + 634 + ], + [ + 254, + 458, + 598, + 665 + ], + [ + 254, + 503, + 598, + 647 + ], + [ + 254, + 512, + 598, + 638 + ], + [ + 254, + 513, + 599, + 637 + ], + [ + 254, + 514, + 520, + 674 + ], + [ + 254, + 514, + 594, + 637 + ], + [ + 254, + 517, + 517, + 674 + ], + [ + 254, + 592, + 594, + 598 + ], + [ + 254, + 593, + 593, + 598 + ], + [ + 255, + 257, + 628, + 648 + ], + [ + 255, + 369, + 618, + 656 + ], + [ + 255, + 379, + 626, + 648 + ], + [ + 255, + 438, + 618, + 652 + ], + [ + 255, + 493, + 608, + 648 + ], + [ + 256, + 256, + 628, + 648 + ], + [ + 256, + 380, + 625, + 648 + ], + [ + 256, + 386, + 628, + 645 + ], + [ + 256, + 437, + 625, + 645 + ], + [ + 256, + 493, + 607, + 648 + ], + [ + 256, + 513, + 609, + 628 + ], + [ + 257, + 308, + 598, + 674 + ], + [ + 257, + 387, + 628, + 644 + ], + [ + 257, + 436, + 598, + 672 + ], + [ + 257, + 456, + 598, + 665 + ], + [ + 257, + 513, + 608, + 628 + ], + [ + 258, + 308, + 609, + 665 + ], + [ + 258, + 314, + 618, + 657 + ], + [ + 258, + 357, + 617, + 656 + ], + [ + 258, + 361, + 618, + 655 + ], + [ + 258, + 379, + 635, + 639 + ], + [ + 258, + 379, + 636, + 638 + ], + [ + 258, + 382, + 629, + 645 + ], + [ + 258, + 422, + 615, + 656 + ], + [ + 258, + 423, + 614, + 656 + ], + [ + 258, + 433, + 600, + 672 + ], + [ + 258, + 433, + 609, + 663 + ], + [ + 258, + 433, + 618, + 654 + ], + [ + 258, + 433, + 627, + 645 + ], + [ + 258, + 433, + 633, + 639 + ], + [ + 258, + 433, + 636, + 636 + ], + [ + 258, + 434, + 618, + 653 + ], + [ + 258, + 435, + 618, + 652 + ], + [ + 258, + 456, + 609, + 656 + ], + [ + 258, + 493, + 617, + 639 + ], + [ + 258, + 494, + 618, + 638 + ], + [ + 258, + 503, + 618, + 629 + ], + [ + 258, + 534, + 540, + 656 + ], + [ + 258, + 534, + 574, + 639 + ], + [ + 258, + 537, + 537, + 656 + ], + [ + 258, + 574, + 576, + 618 + ], + [ + 258, + 575, + 575, + 618 + ], + [ + 259, + 320, + 618, + 656 + ], + [ + 259, + 363, + 617, + 655 + ], + [ + 259, + 383, + 628, + 645 + ], + [ + 259, + 433, + 599, + 672 + ], + [ + 259, + 434, + 625, + 645 + ], + [ + 259, + 440, + 628, + 642 + ], + [ + 259, + 504, + 618, + 628 + ], + [ + 259, + 534, + 594, + 628 + ], + [ + 260, + 433, + 598, + 672 + ], + [ + 281, + 281, + 598, + 674 + ], + [ + 285, + 285, + 618, + 656 + ], + [ + 288, + 379, + 595, + 675 + ], + [ + 290, + 379, + 596, + 674 + ], + [ + 290, + 387, + 606, + 664 + ], + [ + 294, + 379, + 604, + 666 + ], + [ + 294, + 387, + 614, + 656 + ], + [ + 296, + 387, + 615, + 655 + ], + [ + 308, + 308, + 596, + 674 + ], + [ + 308, + 369, + 605, + 665 + ], + [ + 308, + 436, + 596, + 672 + ], + [ + 308, + 441, + 605, + 661 + ], + [ + 308, + 456, + 596, + 665 + ], + [ + 314, + 320, + 606, + 666 + ], + [ + 314, + 339, + 605, + 666 + ], + [ + 314, + 357, + 604, + 666 + ], + [ + 314, + 363, + 605, + 665 + ], + [ + 314, + 434, + 596, + 672 + ], + [ + 314, + 441, + 614, + 653 + ], + [ + 314, + 453, + 596, + 666 + ], + [ + 314, + 514, + 534, + 666 + ], + [ + 317, + 317, + 606, + 666 + ], + [ + 317, + 332, + 605, + 666 + ], + [ + 317, + 345, + 606, + 665 + ], + [ + 317, + 360, + 605, + 665 + ], + [ + 317, + 494, + 605, + 648 + ], + [ + 317, + 513, + 606, + 629 + ], + [ + 318, + 441, + 615, + 652 + ], + [ + 319, + 493, + 605, + 648 + ], + [ + 320, + 339, + 606, + 665 + ], + [ + 320, + 357, + 605, + 665 + ], + [ + 320, + 363, + 606, + 664 + ], + [ + 320, + 433, + 597, + 672 + ], + [ + 320, + 440, + 615, + 653 + ], + [ + 320, + 459, + 606, + 656 + ], + [ + 320, + 574, + 594, + 606 + ], + [ + 332, + 332, + 604, + 666 + ], + [ + 332, + 345, + 605, + 665 + ], + [ + 332, + 360, + 604, + 665 + ], + [ + 332, + 494, + 604, + 648 + ], + [ + 332, + 513, + 605, + 629 + ], + [ + 339, + 339, + 605, + 665 + ], + [ + 339, + 357, + 604, + 665 + ], + [ + 339, + 363, + 605, + 664 + ], + [ + 339, + 453, + 596, + 665 + ], + [ + 339, + 459, + 605, + 656 + ], + [ + 339, + 514, + 534, + 665 + ], + [ + 339, + 574, + 594, + 605 + ], + [ + 345, + 345, + 606, + 664 + ], + [ + 345, + 360, + 605, + 664 + ], + [ + 345, + 493, + 605, + 647 + ], + [ + 345, + 512, + 606, + 628 + ], + [ + 355, + 433, + 595, + 672 + ], + [ + 356, + 453, + 595, + 665 + ], + [ + 356, + 513, + 605, + 628 + ], + [ + 357, + 363, + 604, + 664 + ], + [ + 357, + 434, + 595, + 671 + ], + [ + 357, + 441, + 613, + 652 + ], + [ + 357, + 452, + 595, + 665 + ], + [ + 357, + 459, + 604, + 656 + ], + [ + 357, + 574, + 594, + 604 + ], + [ + 360, + 360, + 604, + 664 + ], + [ + 360, + 493, + 604, + 647 + ], + [ + 360, + 512, + 605, + 628 + ], + [ + 362, + 459, + 605, + 655 + ], + [ + 363, + 433, + 596, + 671 + ], + [ + 363, + 440, + 614, + 652 + ], + [ + 363, + 453, + 596, + 664 + ], + [ + 363, + 458, + 605, + 655 + ], + [ + 363, + 514, + 534, + 664 + ], + [ + 369, + 369, + 614, + 656 + ], + [ + 369, + 433, + 605, + 663 + ], + [ + 369, + 438, + 614, + 652 + ], + [ + 369, + 456, + 605, + 656 + ], + [ + 379, + 381, + 622, + 648 + ], + [ + 379, + 385, + 598, + 672 + ], + [ + 379, + 387, + 599, + 671 + ], + [ + 379, + 387, + 608, + 662 + ], + [ + 379, + 387, + 617, + 653 + ], + [ + 379, + 387, + 626, + 644 + ], + [ + 379, + 387, + 631, + 639 + ], + [ + 379, + 387, + 632, + 638 + ], + [ + 379, + 387, + 633, + 637 + ], + [ + 379, + 387, + 634, + 636 + ], + [ + 379, + 387, + 635, + 635 + ], + [ + 379, + 427, + 596, + 672 + ], + [ + 379, + 429, + 595, + 671 + ], + [ + 379, + 432, + 604, + 662 + ], + [ + 379, + 438, + 622, + 644 + ], + [ + 379, + 441, + 631, + 635 + ], + [ + 379, + 441, + 632, + 634 + ], + [ + 379, + 491, + 604, + 648 + ], + [ + 379, + 509, + 595, + 639 + ], + [ + 379, + 510, + 596, + 638 + ], + [ + 379, + 512, + 598, + 636 + ], + [ + 379, + 513, + 599, + 635 + ], + [ + 379, + 513, + 608, + 626 + ], + [ + 379, + 514, + 594, + 635 + ], + [ + 380, + 380, + 622, + 648 + ], + [ + 380, + 386, + 625, + 645 + ], + [ + 380, + 437, + 622, + 645 + ], + [ + 380, + 490, + 604, + 648 + ], + [ + 380, + 513, + 609, + 625 + ], + [ + 381, + 387, + 618, + 652 + ], + [ + 382, + 382, + 598, + 672 + ], + [ + 382, + 384, + 625, + 645 + ], + [ + 382, + 424, + 596, + 672 + ], + [ + 382, + 441, + 625, + 641 + ], + [ + 382, + 503, + 598, + 645 + ], + [ + 383, + 383, + 625, + 645 + ], + [ + 383, + 434, + 622, + 645 + ], + [ + 383, + 440, + 625, + 642 + ], + [ + 383, + 502, + 598, + 645 + ], + [ + 383, + 504, + 618, + 625 + ], + [ + 383, + 514, + 574, + 645 + ], + [ + 383, + 534, + 594, + 625 + ], + [ + 384, + 384, + 618, + 652 + ], + [ + 384, + 432, + 614, + 652 + ], + [ + 384, + 433, + 623, + 645 + ], + [ + 384, + 503, + 618, + 625 + ], + [ + 385, + 387, + 628, + 642 + ], + [ + 386, + 386, + 628, + 642 + ], + [ + 386, + 437, + 625, + 642 + ], + [ + 386, + 493, + 607, + 645 + ], + [ + 386, + 510, + 606, + 628 + ], + [ + 387, + 424, + 606, + 662 + ], + [ + 387, + 427, + 615, + 653 + ], + [ + 387, + 429, + 614, + 652 + ], + [ + 387, + 433, + 632, + 636 + ], + [ + 387, + 433, + 633, + 635 + ], + [ + 387, + 436, + 626, + 642 + ], + [ + 387, + 490, + 614, + 638 + ], + [ + 387, + 491, + 615, + 637 + ], + [ + 387, + 493, + 608, + 644 + ], + [ + 387, + 493, + 617, + 635 + ], + [ + 387, + 494, + 618, + 634 + ], + [ + 387, + 509, + 606, + 628 + ], + [ + 387, + 534, + 574, + 635 + ], + [ + 406, + 406, + 596, + 672 + ], + [ + 414, + 414, + 614, + 652 + ], + [ + 424, + 503, + 596, + 645 + ], + [ + 424, + 513, + 606, + 626 + ], + [ + 425, + 502, + 595, + 645 + ], + [ + 425, + 513, + 606, + 625 + ], + [ + 431, + 493, + 604, + 645 + ], + [ + 431, + 504, + 615, + 625 + ], + [ + 432, + 493, + 604, + 644 + ], + [ + 432, + 503, + 614, + 625 + ], + [ + 433, + 440, + 596, + 669 + ], + [ + 433, + 441, + 596, + 668 + ], + [ + 433, + 441, + 605, + 659 + ], + [ + 433, + 441, + 614, + 650 + ], + [ + 433, + 441, + 623, + 641 + ], + [ + 433, + 441, + 631, + 633 + ], + [ + 433, + 441, + 632, + 632 + ], + [ + 433, + 456, + 596, + 663 + ], + [ + 433, + 501, + 596, + 645 + ], + [ + 433, + 510, + 596, + 636 + ], + [ + 433, + 513, + 599, + 633 + ], + [ + 433, + 514, + 516, + 672 + ], + [ + 433, + 514, + 594, + 633 + ], + [ + 433, + 515, + 515, + 672 + ], + [ + 433, + 588, + 594, + 596 + ], + [ + 433, + 591, + 591, + 596 + ], + [ + 434, + 440, + 622, + 642 + ], + [ + 434, + 441, + 614, + 649 + ], + [ + 434, + 499, + 595, + 645 + ], + [ + 434, + 504, + 618, + 622 + ], + [ + 434, + 534, + 594, + 622 + ], + [ + 436, + 438, + 622, + 642 + ], + [ + 437, + 437, + 622, + 642 + ], + [ + 437, + 490, + 604, + 645 + ], + [ + 437, + 510, + 606, + 625 + ], + [ + 438, + 456, + 605, + 652 + ], + [ + 440, + 501, + 615, + 625 + ], + [ + 440, + 502, + 598, + 642 + ], + [ + 440, + 514, + 574, + 642 + ], + [ + 441, + 452, + 605, + 652 + ], + [ + 441, + 490, + 614, + 634 + ], + [ + 441, + 493, + 617, + 631 + ], + [ + 441, + 499, + 614, + 625 + ], + [ + 441, + 532, + 534, + 652 + ], + [ + 441, + 533, + 533, + 652 + ], + [ + 441, + 534, + 574, + 631 + ], + [ + 441, + 568, + 574, + 614 + ], + [ + 441, + 571, + 571, + 614 + ], + [ + 451, + 493, + 595, + 648 + ], + [ + 453, + 459, + 596, + 656 + ], + [ + 453, + 502, + 595, + 639 + ], + [ + 453, + 513, + 597, + 628 + ], + [ + 453, + 574, + 594, + 596 + ], + [ + 456, + 456, + 596, + 656 + ], + [ + 459, + 493, + 604, + 639 + ], + [ + 459, + 504, + 606, + 628 + ], + [ + 459, + 514, + 534, + 656 + ], + [ + 466, + 466, + 604, + 648 + ], + [ + 486, + 486, + 606, + 628 + ], + [ + 493, + 504, + 604, + 621 + ], + [ + 493, + 513, + 599, + 617 + ], + [ + 493, + 513, + 604, + 612 + ], + [ + 493, + 513, + 605, + 611 + ], + [ + 493, + 513, + 606, + 610 + ], + [ + 493, + 513, + 607, + 609 + ], + [ + 493, + 513, + 608, + 608 + ], + [ + 493, + 514, + 532, + 648 + ], + [ + 493, + 514, + 594, + 617 + ], + [ + 493, + 523, + 523, + 648 + ], + [ + 493, + 540, + 594, + 604 + ], + [ + 493, + 567, + 567, + 604 + ], + [ + 494, + 512, + 598, + 618 + ], + [ + 502, + 504, + 598, + 618 + ], + [ + 502, + 513, + 601, + 606 + ], + [ + 502, + 534, + 594, + 598 + ], + [ + 503, + 503, + 598, + 618 + ], + [ + 504, + 514, + 574, + 618 + ], + [ + 513, + 516, + 534, + 628 + ], + [ + 513, + 520, + 574, + 606 + ], + [ + 513, + 525, + 525, + 628 + ], + [ + 513, + 534, + 574, + 599 + ], + [ + 513, + 547, + 547, + 606 + ], + [ + 514, + 534, + 574, + 594 + ] + ], + "complements_five": [ + [ + 170, + 615, + 631, + 655, + 675 + ], + [ + 177, + 595, + 642, + 655, + 675 + ], + [ + 179, + 615, + 622, + 655, + 675 + ], + [ + 186, + 595, + 633, + 655, + 675 + ], + [ + 218, + 595, + 615, + 664, + 675 + ], + [ + 224, + 604, + 615, + 655, + 675 + ], + [ + 253, + 595, + 618, + 655, + 675 + ], + [ + 254, + 595, + 617, + 655, + 675 + ], + [ + 258, + 599, + 615, + 655, + 675 + ], + [ + 259, + 598, + 615, + 655, + 675 + ], + [ + 314, + 595, + 615, + 656, + 675 + ], + [ + 320, + 596, + 615, + 655, + 675 + ], + [ + 357, + 595, + 614, + 655, + 675 + ], + [ + 363, + 595, + 615, + 655, + 674 + ], + [ + 433, + 595, + 615, + 653, + 675 + ], + [ + 434, + 595, + 615, + 652, + 675 + ], + [ + 440, + 595, + 615, + 655, + 672 + ], + [ + 441, + 595, + 615, + 655, + 671 + ], + [ + 453, + 595, + 606, + 655, + 675 + ], + [ + 459, + 595, + 615, + 655, + 666 + ], + [ + 493, + 595, + 615, + 637, + 675 + ], + [ + 502, + 595, + 615, + 628, + 675 + ], + [ + 504, + 595, + 615, + 648, + 655 + ], + [ + 513, + 595, + 615, + 639, + 655 + ], + [ + 514, + 514, + 615, + 655, + 675 + ], + [ + 534, + 534, + 595, + 655, + 675 + ], + [ + 574, + 574, + 595, + 615, + 675 + ], + [ + 594, + 594, + 595, + 615, + 655 + ] + ], + "candidates_seven": [ + [ + 170, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 186, + 595, + 615, + 622, + 655, + 666, + 675 + ], + [ + 254, + 595, + 598, + 615, + 655, + 674, + 675 + ], + [ + 258, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 433, + 595, + 596, + 615, + 655, + 672, + 675 + ], + [ + 441, + 595, + 614, + 615, + 652, + 655, + 675 + ], + [ + 493, + 595, + 604, + 615, + 648, + 655, + 675 + ], + [ + 513, + 595, + 606, + 615, + 628, + 655, + 675 + ] + ], + "candidates_eight": [ + [ + 4, + 595, + 614, + 615, + 652, + 655, + 675, + 675 + ], + [ + 5, + 595, + 614, + 615, + 652, + 655, + 674, + 675 + ], + [ + 7, + 595, + 614, + 615, + 652, + 655, + 672, + 675 + ], + [ + 8, + 595, + 614, + 615, + 652, + 655, + 671, + 675 + ], + [ + 8, + 595, + 615, + 631, + 642, + 655, + 664, + 675 + ], + [ + 10, + 595, + 605, + 615, + 655, + 655, + 675, + 675 + ], + [ + 15, + 595, + 615, + 622, + 642, + 655, + 666, + 675 + ], + [ + 16, + 595, + 605, + 615, + 652, + 655, + 672, + 675 + ], + [ + 16, + 595, + 615, + 622, + 642, + 655, + 665, + 675 + ], + [ + 17, + 595, + 615, + 622, + 642, + 655, + 664, + 675 + ], + [ + 21, + 595, + 596, + 615, + 655, + 656, + 672, + 675 + ], + [ + 22, + 595, + 596, + 615, + 655, + 655, + 672, + 675 + ], + [ + 24, + 595, + 596, + 615, + 653, + 655, + 672, + 675 + ], + [ + 24, + 595, + 615, + 622, + 633, + 655, + 666, + 675 + ], + [ + 25, + 595, + 596, + 615, + 652, + 655, + 672, + 675 + ], + [ + 29, + 595, + 604, + 615, + 648, + 655, + 664, + 675 + ], + [ + 30, + 595, + 615, + 615, + 625, + 655, + 675, + 675 + ], + [ + 32, + 595, + 604, + 615, + 645, + 655, + 664, + 675 + ], + [ + 32, + 595, + 614, + 615, + 625, + 655, + 674, + 675 + ], + [ + 35, + 595, + 604, + 615, + 642, + 655, + 664, + 675 + ], + [ + 36, + 595, + 606, + 615, + 628, + 655, + 675, + 675 + ], + [ + 38, + 595, + 604, + 615, + 648, + 655, + 655, + 675 + ], + [ + 42, + 595, + 615, + 615, + 622, + 655, + 666, + 675 + ], + [ + 44, + 595, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 45, + 595, + 606, + 615, + 628, + 655, + 666, + 675 + ], + [ + 48, + 595, + 596, + 615, + 645, + 655, + 656, + 675 + ], + [ + 48, + 595, + 606, + 615, + 625, + 655, + 666, + 675 + ], + [ + 50, + 595, + 595, + 615, + 645, + 655, + 655, + 675 + ], + [ + 51, + 595, + 606, + 615, + 622, + 655, + 666, + 675 + ], + [ + 55, + 595, + 598, + 615, + 618, + 655, + 674, + 675 + ], + [ + 56, + 595, + 598, + 615, + 617, + 655, + 674, + 675 + ], + [ + 56, + 595, + 604, + 615, + 637, + 648, + 655, + 675 + ], + [ + 58, + 595, + 598, + 615, + 615, + 655, + 674, + 675 + ], + [ + 59, + 595, + 598, + 614, + 615, + 655, + 674, + 675 + ], + [ + 63, + 595, + 606, + 615, + 628, + 648, + 655, + 675 + ], + [ + 64, + 595, + 598, + 615, + 618, + 655, + 665, + 675 + ], + [ + 64, + 595, + 605, + 615, + 628, + 648, + 655, + 675 + ], + [ + 65, + 595, + 604, + 615, + 628, + 648, + 655, + 675 + ], + [ + 70, + 595, + 595, + 615, + 615, + 655, + 665, + 675 + ], + [ + 72, + 595, + 599, + 615, + 618, + 655, + 656, + 675 + ], + [ + 72, + 595, + 606, + 615, + 628, + 639, + 655, + 675 + ], + [ + 73, + 595, + 598, + 615, + 618, + 655, + 656, + 675 + ], + [ + 75, + 595, + 596, + 615, + 618, + 655, + 656, + 675 + ], + [ + 76, + 595, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 89, + 514, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 89, + 594, + 595, + 614, + 615, + 652, + 655, + 675 + ], + [ + 105, + 534, + 595, + 615, + 622, + 655, + 666, + 675 + ], + [ + 105, + 574, + 595, + 596, + 615, + 655, + 672, + 675 + ], + [ + 137, + 534, + 595, + 598, + 615, + 655, + 674, + 675 + ], + [ + 137, + 574, + 595, + 604, + 615, + 648, + 655, + 675 + ], + [ + 153, + 514, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 153, + 594, + 595, + 606, + 615, + 628, + 655, + 675 + ], + [ + 164, + 513, + 595, + 606, + 615, + 655, + 664, + 675 + ], + [ + 166, + 379, + 595, + 615, + 631, + 655, + 675, + 675 + ], + [ + 166, + 387, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 167, + 254, + 595, + 615, + 634, + 655, + 674, + 675 + ], + [ + 167, + 256, + 595, + 615, + 645, + 655, + 664, + 675 + ], + [ + 167, + 379, + 595, + 615, + 632, + 655, + 674, + 675 + ], + [ + 167, + 386, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 167, + 490, + 595, + 614, + 615, + 655, + 674, + 675 + ], + [ + 167, + 510, + 595, + 606, + 615, + 655, + 664, + 675 + ], + [ + 168, + 513, + 595, + 615, + 628, + 642, + 655, + 675 + ], + [ + 169, + 187, + 595, + 615, + 652, + 655, + 672, + 675 + ], + [ + 169, + 317, + 595, + 615, + 642, + 655, + 665, + 675 + ], + [ + 169, + 345, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 169, + 379, + 595, + 615, + 634, + 655, + 672, + 675 + ], + [ + 169, + 433, + 595, + 615, + 632, + 655, + 672, + 675 + ], + [ + 169, + 512, + 595, + 615, + 628, + 642, + 655, + 675 + ], + [ + 170, + 170, + 615, + 631, + 642, + 655, + 664, + 675 + ], + [ + 170, + 177, + 595, + 615, + 655, + 664, + 669, + 675 + ], + [ + 170, + 177, + 595, + 642, + 642, + 655, + 664, + 675 + ], + [ + 170, + 179, + 615, + 622, + 642, + 655, + 664, + 675 + ], + [ + 170, + 186, + 595, + 615, + 653, + 655, + 671, + 675 + ], + [ + 170, + 186, + 595, + 615, + 655, + 658, + 666, + 675 + ], + [ + 170, + 186, + 595, + 615, + 655, + 659, + 665, + 675 + ], + [ + 170, + 186, + 595, + 615, + 655, + 660, + 664, + 675 + ], + [ + 170, + 186, + 595, + 615, + 655, + 661, + 663, + 675 + ], + [ + 170, + 186, + 595, + 615, + 655, + 662, + 662, + 675 + ], + [ + 170, + 186, + 595, + 633, + 642, + 655, + 664, + 675 + ], + [ + 170, + 186, + 615, + 622, + 631, + 655, + 666, + 675 + ], + [ + 170, + 218, + 595, + 615, + 642, + 655, + 673, + 675 + ], + [ + 170, + 218, + 595, + 615, + 642, + 664, + 664, + 675 + ], + [ + 170, + 224, + 604, + 615, + 642, + 655, + 664, + 675 + ], + [ + 170, + 244, + 595, + 615, + 645, + 655, + 664, + 675 + ], + [ + 170, + 245, + 595, + 615, + 644, + 655, + 664, + 675 + ], + [ + 170, + 253, + 595, + 618, + 642, + 655, + 664, + 675 + ], + [ + 170, + 254, + 595, + 615, + 637, + 655, + 671, + 675 + ], + [ + 170, + 254, + 595, + 617, + 642, + 655, + 664, + 675 + ], + [ + 170, + 254, + 598, + 615, + 631, + 655, + 674, + 675 + ], + [ + 170, + 258, + 599, + 615, + 642, + 655, + 664, + 675 + ], + [ + 170, + 258, + 615, + 618, + 631, + 655, + 656, + 675 + ], + [ + 170, + 259, + 598, + 615, + 642, + 655, + 664, + 675 + ], + [ + 170, + 313, + 595, + 615, + 642, + 655, + 665, + 675 + ], + [ + 170, + 314, + 595, + 615, + 642, + 656, + 664, + 675 + ], + [ + 170, + 320, + 596, + 615, + 642, + 655, + 664, + 675 + ], + [ + 170, + 332, + 595, + 615, + 641, + 655, + 665, + 675 + ], + [ + 170, + 357, + 595, + 614, + 642, + 655, + 664, + 675 + ], + [ + 170, + 360, + 595, + 615, + 641, + 655, + 664, + 675 + ], + [ + 170, + 363, + 595, + 615, + 642, + 655, + 664, + 674 + ], + [ + 170, + 379, + 595, + 615, + 635, + 655, + 671, + 675 + ], + [ + 170, + 379, + 595, + 615, + 644, + 655, + 662, + 675 + ], + [ + 170, + 380, + 595, + 615, + 645, + 655, + 661, + 675 + ], + [ + 170, + 433, + 595, + 615, + 633, + 655, + 671, + 675 + ], + [ + 170, + 433, + 595, + 615, + 642, + 653, + 664, + 675 + ], + [ + 170, + 433, + 596, + 615, + 631, + 655, + 672, + 675 + ], + [ + 170, + 434, + 595, + 615, + 642, + 652, + 664, + 675 + ], + [ + 170, + 436, + 595, + 615, + 642, + 655, + 662, + 675 + ], + [ + 170, + 437, + 595, + 615, + 642, + 655, + 661, + 675 + ], + [ + 170, + 440, + 595, + 615, + 642, + 655, + 664, + 672 + ], + [ + 170, + 441, + 595, + 615, + 642, + 655, + 664, + 671 + ], + [ + 170, + 441, + 614, + 615, + 631, + 652, + 655, + 675 + ], + [ + 170, + 453, + 595, + 606, + 642, + 655, + 664, + 675 + ], + [ + 170, + 453, + 595, + 615, + 633, + 655, + 664, + 675 + ], + [ + 170, + 457, + 595, + 615, + 642, + 655, + 655, + 675 + ], + [ + 170, + 459, + 595, + 615, + 642, + 655, + 664, + 666 + ], + [ + 170, + 493, + 595, + 615, + 617, + 655, + 671, + 675 + ], + [ + 170, + 493, + 595, + 615, + 637, + 642, + 664, + 675 + ], + [ + 170, + 493, + 595, + 615, + 640, + 648, + 655, + 675 + ], + [ + 170, + 493, + 595, + 615, + 641, + 647, + 655, + 675 + ], + [ + 170, + 493, + 595, + 615, + 642, + 646, + 655, + 675 + ], + [ + 170, + 493, + 595, + 615, + 643, + 645, + 655, + 675 + ], + [ + 170, + 493, + 595, + 615, + 644, + 644, + 655, + 675 + ], + [ + 170, + 493, + 604, + 615, + 631, + 648, + 655, + 675 + ], + [ + 170, + 498, + 595, + 615, + 615, + 655, + 664, + 675 + ], + [ + 170, + 502, + 595, + 615, + 628, + 642, + 664, + 675 + ], + [ + 170, + 502, + 595, + 615, + 637, + 642, + 655, + 675 + ], + [ + 170, + 504, + 595, + 615, + 642, + 648, + 655, + 664 + ], + [ + 170, + 507, + 595, + 606, + 615, + 655, + 664, + 675 + ], + [ + 170, + 511, + 595, + 615, + 628, + 642, + 655, + 675 + ], + [ + 170, + 513, + 595, + 615, + 639, + 642, + 655, + 664 + ], + [ + 170, + 513, + 606, + 615, + 628, + 631, + 655, + 675 + ], + [ + 170, + 514, + 514, + 615, + 642, + 655, + 664, + 675 + ], + [ + 170, + 534, + 534, + 595, + 642, + 655, + 664, + 675 + ], + [ + 170, + 534, + 574, + 595, + 615, + 655, + 671, + 675 + ], + [ + 170, + 534, + 588, + 595, + 615, + 655, + 664, + 675 + ], + [ + 170, + 561, + 561, + 595, + 615, + 655, + 664, + 675 + ], + [ + 170, + 574, + 574, + 595, + 615, + 642, + 664, + 675 + ], + [ + 170, + 574, + 592, + 595, + 615, + 642, + 655, + 675 + ], + [ + 170, + 583, + 583, + 595, + 615, + 642, + 655, + 675 + ], + [ + 170, + 594, + 594, + 595, + 615, + 642, + 655, + 664 + ], + [ + 171, + 493, + 595, + 604, + 615, + 655, + 675, + 675 + ], + [ + 173, + 513, + 595, + 606, + 615, + 655, + 655, + 675 + ], + [ + 174, + 253, + 595, + 615, + 625, + 655, + 675, + 675 + ], + [ + 174, + 258, + 595, + 615, + 645, + 655, + 656, + 675 + ], + [ + 176, + 254, + 595, + 615, + 625, + 655, + 674, + 675 + ], + [ + 176, + 259, + 595, + 615, + 645, + 655, + 655, + 675 + ], + [ + 177, + 179, + 595, + 615, + 652, + 655, + 672, + 675 + ], + [ + 177, + 186, + 595, + 622, + 642, + 655, + 666, + 675 + ], + [ + 177, + 218, + 595, + 615, + 631, + 655, + 675, + 675 + ], + [ + 177, + 244, + 595, + 615, + 625, + 655, + 675, + 675 + ], + [ + 177, + 254, + 595, + 598, + 642, + 655, + 674, + 675 + ], + [ + 177, + 258, + 595, + 618, + 642, + 655, + 656, + 675 + ], + [ + 177, + 259, + 595, + 615, + 628, + 655, + 672, + 675 + ], + [ + 177, + 383, + 595, + 615, + 625, + 655, + 672, + 675 + ], + [ + 177, + 433, + 595, + 596, + 642, + 655, + 672, + 675 + ], + [ + 177, + 434, + 595, + 615, + 622, + 655, + 672, + 675 + ], + [ + 177, + 441, + 595, + 614, + 642, + 652, + 655, + 675 + ], + [ + 177, + 453, + 595, + 615, + 622, + 655, + 666, + 675 + ], + [ + 177, + 493, + 595, + 604, + 642, + 648, + 655, + 675 + ], + [ + 177, + 502, + 595, + 598, + 615, + 655, + 672, + 675 + ], + [ + 177, + 504, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 177, + 513, + 595, + 606, + 628, + 642, + 655, + 675 + ], + [ + 177, + 513, + 595, + 615, + 628, + 633, + 655, + 675 + ], + [ + 177, + 514, + 574, + 595, + 615, + 655, + 672, + 675 + ], + [ + 178, + 178, + 595, + 615, + 652, + 655, + 672, + 675 + ], + [ + 178, + 245, + 595, + 615, + 625, + 655, + 674, + 675 + ], + [ + 178, + 249, + 595, + 615, + 645, + 655, + 656, + 675 + ], + [ + 178, + 382, + 595, + 615, + 625, + 655, + 672, + 675 + ], + [ + 178, + 384, + 595, + 615, + 645, + 652, + 655, + 675 + ], + [ + 178, + 433, + 595, + 615, + 623, + 655, + 672, + 675 + ], + [ + 178, + 441, + 595, + 615, + 641, + 652, + 655, + 675 + ], + [ + 178, + 503, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 179, + 186, + 595, + 615, + 649, + 655, + 666, + 675 + ], + [ + 179, + 186, + 615, + 622, + 622, + 655, + 666, + 675 + ], + [ + 179, + 224, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 179, + 250, + 595, + 615, + 645, + 655, + 655, + 675 + ], + [ + 179, + 253, + 595, + 615, + 648, + 652, + 655, + 675 + ], + [ + 179, + 254, + 598, + 615, + 622, + 655, + 674, + 675 + ], + [ + 179, + 258, + 615, + 618, + 622, + 655, + 656, + 675 + ], + [ + 179, + 383, + 595, + 615, + 645, + 652, + 655, + 675 + ], + [ + 179, + 433, + 596, + 615, + 622, + 655, + 672, + 675 + ], + [ + 179, + 440, + 595, + 615, + 642, + 652, + 655, + 675 + ], + [ + 179, + 441, + 614, + 615, + 622, + 652, + 655, + 675 + ], + [ + 179, + 459, + 595, + 615, + 633, + 655, + 655, + 675 + ], + [ + 179, + 493, + 595, + 615, + 631, + 648, + 655, + 675 + ], + [ + 179, + 493, + 604, + 615, + 622, + 648, + 655, + 675 + ], + [ + 179, + 502, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 179, + 504, + 595, + 615, + 618, + 652, + 655, + 675 + ], + [ + 179, + 513, + 606, + 615, + 622, + 628, + 655, + 675 + ], + [ + 179, + 534, + 594, + 595, + 615, + 652, + 655, + 675 + ], + [ + 180, + 493, + 595, + 604, + 615, + 655, + 666, + 675 + ], + [ + 183, + 256, + 595, + 615, + 625, + 655, + 666, + 675 + ], + [ + 183, + 258, + 595, + 615, + 636, + 655, + 656, + 675 + ], + [ + 183, + 380, + 595, + 615, + 622, + 655, + 666, + 675 + ], + [ + 183, + 387, + 595, + 615, + 632, + 655, + 656, + 675 + ], + [ + 183, + 490, + 595, + 604, + 615, + 655, + 666, + 675 + ], + [ + 183, + 510, + 595, + 596, + 615, + 655, + 656, + 675 + ], + [ + 184, + 379, + 595, + 615, + 622, + 655, + 666, + 675 + ], + [ + 184, + 387, + 595, + 615, + 633, + 655, + 655, + 675 + ], + [ + 186, + 186, + 595, + 622, + 633, + 655, + 666, + 675 + ], + [ + 186, + 216, + 595, + 615, + 622, + 655, + 675, + 675 + ], + [ + 186, + 218, + 595, + 615, + 622, + 664, + 666, + 675 + ], + [ + 186, + 224, + 595, + 615, + 631, + 655, + 666, + 675 + ], + [ + 186, + 224, + 604, + 615, + 622, + 655, + 666, + 675 + ], + [ + 186, + 249, + 595, + 615, + 626, + 655, + 666, + 675 + ], + [ + 186, + 250, + 595, + 615, + 625, + 655, + 666, + 675 + ], + [ + 186, + 253, + 595, + 618, + 622, + 655, + 666, + 675 + ], + [ + 186, + 254, + 595, + 598, + 633, + 655, + 674, + 675 + ], + [ + 186, + 254, + 595, + 617, + 622, + 655, + 666, + 675 + ], + [ + 186, + 258, + 595, + 615, + 639, + 653, + 655, + 675 + ], + [ + 186, + 258, + 595, + 618, + 633, + 655, + 656, + 675 + ], + [ + 186, + 258, + 599, + 615, + 622, + 655, + 666, + 675 + ], + [ + 186, + 259, + 598, + 615, + 622, + 655, + 666, + 675 + ], + [ + 186, + 314, + 595, + 615, + 622, + 656, + 666, + 675 + ], + [ + 186, + 317, + 595, + 615, + 623, + 655, + 666, + 675 + ], + [ + 186, + 320, + 596, + 615, + 622, + 655, + 666, + 675 + ], + [ + 186, + 345, + 595, + 615, + 623, + 655, + 665, + 675 + ], + [ + 186, + 357, + 595, + 614, + 622, + 655, + 666, + 675 + ], + [ + 186, + 362, + 595, + 615, + 622, + 655, + 665, + 675 + ], + [ + 186, + 363, + 595, + 615, + 622, + 655, + 666, + 674 + ], + [ + 186, + 386, + 595, + 615, + 625, + 655, + 663, + 675 + ], + [ + 186, + 387, + 595, + 615, + 626, + 655, + 662, + 675 + ], + [ + 186, + 387, + 595, + 615, + 635, + 653, + 655, + 675 + ], + [ + 186, + 433, + 595, + 596, + 633, + 655, + 672, + 675 + ], + [ + 186, + 433, + 595, + 615, + 622, + 653, + 666, + 675 + ], + [ + 186, + 434, + 595, + 615, + 622, + 652, + 666, + 675 + ], + [ + 186, + 437, + 595, + 615, + 622, + 655, + 663, + 675 + ], + [ + 186, + 438, + 595, + 615, + 622, + 655, + 662, + 675 + ], + [ + 186, + 440, + 595, + 615, + 622, + 655, + 666, + 672 + ], + [ + 186, + 441, + 595, + 614, + 633, + 652, + 655, + 675 + ], + [ + 186, + 441, + 595, + 615, + 622, + 655, + 666, + 671 + ], + [ + 186, + 441, + 595, + 615, + 631, + 653, + 655, + 675 + ], + [ + 186, + 453, + 595, + 606, + 622, + 655, + 666, + 675 + ], + [ + 186, + 459, + 595, + 615, + 622, + 655, + 657, + 675 + ], + [ + 186, + 459, + 595, + 615, + 622, + 655, + 666, + 666 + ], + [ + 186, + 487, + 595, + 604, + 615, + 655, + 666, + 675 + ], + [ + 186, + 493, + 595, + 604, + 633, + 648, + 655, + 675 + ], + [ + 186, + 493, + 595, + 615, + 622, + 637, + 666, + 675 + ], + [ + 186, + 495, + 595, + 615, + 622, + 648, + 655, + 675 + ], + [ + 186, + 496, + 595, + 595, + 615, + 655, + 666, + 675 + ], + [ + 186, + 502, + 595, + 615, + 622, + 628, + 666, + 675 + ], + [ + 186, + 504, + 595, + 615, + 622, + 639, + 655, + 675 + ], + [ + 186, + 504, + 595, + 615, + 622, + 648, + 655, + 666 + ], + [ + 186, + 513, + 595, + 599, + 615, + 653, + 655, + 675 + ], + [ + 186, + 513, + 595, + 606, + 628, + 633, + 655, + 675 + ], + [ + 186, + 513, + 595, + 615, + 622, + 630, + 655, + 675 + ], + [ + 186, + 513, + 595, + 615, + 622, + 639, + 655, + 666 + ], + [ + 186, + 513, + 595, + 615, + 623, + 629, + 655, + 675 + ], + [ + 186, + 513, + 595, + 615, + 624, + 628, + 655, + 675 + ], + [ + 186, + 513, + 595, + 615, + 625, + 627, + 655, + 675 + ], + [ + 186, + 513, + 595, + 615, + 626, + 626, + 655, + 675 + ], + [ + 186, + 514, + 514, + 615, + 622, + 655, + 666, + 675 + ], + [ + 186, + 514, + 568, + 595, + 615, + 655, + 666, + 675 + ], + [ + 186, + 514, + 594, + 595, + 615, + 653, + 655, + 675 + ], + [ + 186, + 534, + 534, + 595, + 622, + 655, + 666, + 675 + ], + [ + 186, + 541, + 541, + 595, + 615, + 655, + 666, + 675 + ], + [ + 186, + 574, + 574, + 595, + 615, + 622, + 666, + 675 + ], + [ + 186, + 576, + 594, + 595, + 615, + 622, + 655, + 675 + ], + [ + 186, + 585, + 585, + 595, + 615, + 622, + 655, + 675 + ], + [ + 186, + 594, + 594, + 595, + 615, + 622, + 655, + 666 + ], + [ + 187, + 332, + 595, + 615, + 622, + 655, + 666, + 675 + ], + [ + 187, + 360, + 595, + 615, + 622, + 655, + 665, + 675 + ], + [ + 187, + 387, + 595, + 615, + 636, + 652, + 655, + 675 + ], + [ + 187, + 441, + 595, + 615, + 632, + 652, + 655, + 675 + ], + [ + 187, + 494, + 595, + 615, + 622, + 648, + 655, + 675 + ], + [ + 188, + 493, + 595, + 615, + 622, + 648, + 655, + 675 + ], + [ + 197, + 197, + 595, + 615, + 642, + 655, + 664, + 675 + ], + [ + 213, + 213, + 595, + 615, + 622, + 655, + 666, + 675 + ], + [ + 217, + 258, + 595, + 615, + 618, + 655, + 665, + 675 + ], + [ + 217, + 314, + 595, + 605, + 615, + 655, + 675, + 675 + ], + [ + 218, + 224, + 595, + 614, + 615, + 655, + 674, + 675 + ], + [ + 218, + 254, + 595, + 598, + 615, + 664, + 674, + 675 + ], + [ + 218, + 258, + 595, + 615, + 618, + 656, + 664, + 675 + ], + [ + 218, + 313, + 595, + 605, + 615, + 655, + 675, + 675 + ], + [ + 218, + 320, + 595, + 606, + 615, + 655, + 674, + 675 + ], + [ + 218, + 339, + 595, + 605, + 615, + 655, + 674, + 675 + ], + [ + 218, + 357, + 595, + 604, + 615, + 655, + 674, + 675 + ], + [ + 218, + 433, + 595, + 596, + 615, + 664, + 672, + 675 + ], + [ + 218, + 441, + 595, + 614, + 615, + 652, + 664, + 675 + ], + [ + 218, + 453, + 595, + 596, + 615, + 655, + 674, + 675 + ], + [ + 218, + 459, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 218, + 493, + 595, + 604, + 615, + 648, + 664, + 675 + ], + [ + 218, + 502, + 595, + 604, + 615, + 648, + 655, + 675 + ], + [ + 218, + 513, + 595, + 606, + 615, + 628, + 664, + 675 + ], + [ + 218, + 513, + 595, + 606, + 615, + 637, + 655, + 675 + ], + [ + 218, + 514, + 534, + 595, + 615, + 655, + 674, + 675 + ], + [ + 221, + 221, + 595, + 614, + 615, + 655, + 674, + 675 + ], + [ + 221, + 254, + 595, + 607, + 615, + 655, + 674, + 675 + ], + [ + 221, + 255, + 595, + 615, + 618, + 655, + 665, + 675 + ], + [ + 221, + 308, + 595, + 605, + 615, + 655, + 674, + 675 + ], + [ + 221, + 369, + 595, + 614, + 615, + 655, + 665, + 675 + ], + [ + 221, + 436, + 595, + 605, + 615, + 655, + 672, + 675 + ], + [ + 221, + 441, + 595, + 614, + 615, + 655, + 661, + 675 + ], + [ + 221, + 456, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 222, + 513, + 595, + 615, + 615, + 628, + 655, + 675 + ], + [ + 223, + 320, + 595, + 615, + 615, + 655, + 665, + 675 + ], + [ + 223, + 433, + 595, + 605, + 615, + 655, + 672, + 675 + ], + [ + 224, + 254, + 598, + 604, + 615, + 655, + 674, + 675 + ], + [ + 224, + 258, + 604, + 615, + 618, + 655, + 656, + 675 + ], + [ + 224, + 314, + 595, + 614, + 615, + 655, + 666, + 675 + ], + [ + 224, + 319, + 595, + 615, + 615, + 655, + 665, + 675 + ], + [ + 224, + 339, + 595, + 614, + 615, + 655, + 665, + 675 + ], + [ + 224, + 363, + 595, + 614, + 615, + 655, + 664, + 675 + ], + [ + 224, + 433, + 596, + 604, + 615, + 655, + 672, + 675 + ], + [ + 224, + 441, + 604, + 614, + 615, + 652, + 655, + 675 + ], + [ + 224, + 453, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 224, + 459, + 595, + 614, + 615, + 655, + 656, + 675 + ], + [ + 224, + 493, + 595, + 613, + 615, + 648, + 655, + 675 + ], + [ + 224, + 493, + 604, + 604, + 615, + 648, + 655, + 675 + ], + [ + 224, + 504, + 595, + 615, + 615, + 637, + 655, + 675 + ], + [ + 224, + 513, + 604, + 606, + 615, + 628, + 655, + 675 + ], + [ + 224, + 574, + 594, + 595, + 614, + 615, + 655, + 675 + ], + [ + 235, + 433, + 595, + 596, + 615, + 655, + 675, + 675 + ], + [ + 236, + 433, + 595, + 596, + 615, + 655, + 674, + 675 + ], + [ + 240, + 441, + 595, + 614, + 615, + 655, + 656, + 675 + ], + [ + 241, + 441, + 595, + 614, + 615, + 655, + 655, + 675 + ], + [ + 245, + 382, + 595, + 598, + 615, + 655, + 674, + 675 + ], + [ + 245, + 387, + 595, + 608, + 615, + 655, + 664, + 675 + ], + [ + 245, + 424, + 595, + 596, + 615, + 655, + 674, + 675 + ], + [ + 245, + 432, + 595, + 604, + 615, + 655, + 664, + 675 + ], + [ + 246, + 379, + 595, + 599, + 615, + 655, + 675, + 675 + ], + [ + 246, + 387, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 248, + 379, + 595, + 598, + 615, + 655, + 674, + 675 + ], + [ + 248, + 387, + 595, + 615, + 617, + 655, + 655, + 675 + ], + [ + 249, + 379, + 595, + 608, + 615, + 655, + 666, + 675 + ], + [ + 249, + 384, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 249, + 424, + 595, + 606, + 615, + 655, + 666, + 675 + ], + [ + 249, + 432, + 595, + 614, + 615, + 655, + 656, + 675 + ], + [ + 252, + 441, + 595, + 615, + 618, + 652, + 655, + 675 + ], + [ + 253, + 254, + 595, + 598, + 618, + 655, + 674, + 675 + ], + [ + 253, + 258, + 595, + 615, + 621, + 655, + 656, + 675 + ], + [ + 253, + 258, + 595, + 618, + 618, + 655, + 656, + 675 + ], + [ + 253, + 259, + 595, + 615, + 628, + 648, + 655, + 675 + ], + [ + 253, + 314, + 595, + 599, + 615, + 655, + 675, + 675 + ], + [ + 253, + 357, + 595, + 598, + 615, + 655, + 674, + 675 + ], + [ + 253, + 383, + 595, + 615, + 625, + 648, + 655, + 675 + ], + [ + 253, + 433, + 595, + 596, + 618, + 655, + 672, + 675 + ], + [ + 253, + 434, + 595, + 615, + 622, + 648, + 655, + 675 + ], + [ + 253, + 440, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 253, + 441, + 595, + 614, + 618, + 652, + 655, + 675 + ], + [ + 253, + 441, + 595, + 615, + 617, + 652, + 655, + 675 + ], + [ + 253, + 493, + 595, + 604, + 618, + 648, + 655, + 675 + ], + [ + 253, + 502, + 595, + 598, + 615, + 648, + 655, + 675 + ], + [ + 253, + 513, + 595, + 606, + 618, + 628, + 655, + 675 + ], + [ + 253, + 514, + 574, + 595, + 615, + 648, + 655, + 675 + ], + [ + 254, + 254, + 595, + 598, + 617, + 655, + 674, + 675 + ], + [ + 254, + 258, + 595, + 602, + 615, + 655, + 674, + 675 + ], + [ + 254, + 258, + 595, + 611, + 615, + 655, + 665, + 675 + ], + [ + 254, + 258, + 595, + 615, + 620, + 655, + 656, + 675 + ], + [ + 254, + 258, + 595, + 615, + 629, + 647, + 655, + 675 + ], + [ + 254, + 258, + 595, + 615, + 637, + 639, + 655, + 675 + ], + [ + 254, + 258, + 595, + 615, + 638, + 638, + 655, + 675 + ], + [ + 254, + 258, + 595, + 617, + 618, + 655, + 656, + 675 + ], + [ + 254, + 258, + 598, + 599, + 615, + 655, + 674, + 675 + ], + [ + 254, + 259, + 595, + 601, + 615, + 655, + 674, + 675 + ], + [ + 254, + 259, + 598, + 598, + 615, + 655, + 674, + 675 + ], + [ + 254, + 312, + 595, + 598, + 615, + 655, + 675, + 675 + ], + [ + 254, + 314, + 595, + 598, + 615, + 656, + 674, + 675 + ], + [ + 254, + 320, + 595, + 599, + 615, + 655, + 674, + 675 + ], + [ + 254, + 320, + 596, + 598, + 615, + 655, + 674, + 675 + ], + [ + 254, + 357, + 595, + 598, + 614, + 655, + 674, + 675 + ], + [ + 254, + 363, + 595, + 598, + 615, + 655, + 673, + 675 + ], + [ + 254, + 363, + 595, + 598, + 615, + 655, + 674, + 674 + ], + [ + 254, + 369, + 595, + 607, + 615, + 655, + 665, + 675 + ], + [ + 254, + 384, + 595, + 615, + 625, + 647, + 655, + 675 + ], + [ + 254, + 387, + 595, + 615, + 634, + 638, + 655, + 675 + ], + [ + 254, + 387, + 595, + 615, + 635, + 637, + 655, + 675 + ], + [ + 254, + 415, + 595, + 596, + 615, + 655, + 674, + 675 + ], + [ + 254, + 416, + 595, + 595, + 615, + 655, + 674, + 675 + ], + [ + 254, + 433, + 595, + 596, + 617, + 655, + 672, + 675 + ], + [ + 254, + 433, + 595, + 598, + 615, + 653, + 674, + 675 + ], + [ + 254, + 434, + 595, + 598, + 615, + 652, + 674, + 675 + ], + [ + 254, + 439, + 595, + 598, + 615, + 655, + 672, + 675 + ], + [ + 254, + 440, + 595, + 598, + 615, + 655, + 671, + 675 + ], + [ + 254, + 440, + 595, + 598, + 615, + 655, + 672, + 674 + ], + [ + 254, + 441, + 595, + 598, + 615, + 655, + 670, + 675 + ], + [ + 254, + 441, + 595, + 598, + 615, + 655, + 671, + 674 + ], + [ + 254, + 441, + 595, + 607, + 615, + 655, + 661, + 675 + ], + [ + 254, + 441, + 595, + 614, + 617, + 652, + 655, + 675 + ], + [ + 254, + 441, + 595, + 615, + 616, + 652, + 655, + 675 + ], + [ + 254, + 441, + 595, + 615, + 625, + 643, + 655, + 675 + ], + [ + 254, + 441, + 595, + 615, + 631, + 637, + 655, + 675 + ], + [ + 254, + 441, + 595, + 615, + 634, + 634, + 655, + 675 + ], + [ + 254, + 453, + 595, + 598, + 606, + 655, + 674, + 675 + ], + [ + 254, + 458, + 595, + 598, + 615, + 655, + 665, + 675 + ], + [ + 254, + 459, + 595, + 598, + 615, + 655, + 666, + 674 + ], + [ + 254, + 493, + 595, + 598, + 615, + 637, + 674, + 675 + ], + [ + 254, + 493, + 595, + 604, + 617, + 648, + 655, + 675 + ], + [ + 254, + 502, + 595, + 598, + 615, + 628, + 674, + 675 + ], + [ + 254, + 503, + 595, + 598, + 615, + 647, + 655, + 675 + ], + [ + 254, + 504, + 595, + 598, + 615, + 648, + 655, + 674 + ], + [ + 254, + 512, + 595, + 598, + 615, + 638, + 655, + 675 + ], + [ + 254, + 513, + 595, + 598, + 615, + 639, + 655, + 674 + ], + [ + 254, + 513, + 595, + 599, + 615, + 637, + 655, + 675 + ], + [ + 254, + 513, + 595, + 606, + 617, + 628, + 655, + 675 + ], + [ + 254, + 514, + 514, + 598, + 615, + 655, + 674, + 675 + ], + [ + 254, + 514, + 520, + 595, + 615, + 655, + 674, + 675 + ], + [ + 254, + 514, + 594, + 595, + 615, + 637, + 655, + 675 + ], + [ + 254, + 517, + 517, + 595, + 615, + 655, + 674, + 675 + ], + [ + 254, + 534, + 534, + 595, + 598, + 655, + 674, + 675 + ], + [ + 254, + 574, + 574, + 595, + 598, + 615, + 674, + 675 + ], + [ + 254, + 592, + 594, + 595, + 598, + 615, + 655, + 675 + ], + [ + 254, + 593, + 593, + 595, + 598, + 615, + 655, + 675 + ], + [ + 254, + 594, + 594, + 595, + 598, + 615, + 655, + 674 + ], + [ + 255, + 257, + 595, + 615, + 628, + 648, + 655, + 675 + ], + [ + 255, + 369, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 255, + 379, + 595, + 615, + 626, + 648, + 655, + 675 + ], + [ + 255, + 438, + 595, + 615, + 618, + 652, + 655, + 675 + ], + [ + 255, + 493, + 595, + 608, + 615, + 648, + 655, + 675 + ], + [ + 256, + 256, + 595, + 615, + 628, + 648, + 655, + 675 + ], + [ + 256, + 380, + 595, + 615, + 625, + 648, + 655, + 675 + ], + [ + 256, + 386, + 595, + 615, + 628, + 645, + 655, + 675 + ], + [ + 256, + 437, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 256, + 493, + 595, + 607, + 615, + 648, + 655, + 675 + ], + [ + 256, + 513, + 595, + 609, + 615, + 628, + 655, + 675 + ], + [ + 257, + 308, + 595, + 598, + 615, + 655, + 674, + 675 + ], + [ + 257, + 387, + 595, + 615, + 628, + 644, + 655, + 675 + ], + [ + 257, + 436, + 595, + 598, + 615, + 655, + 672, + 675 + ], + [ + 257, + 456, + 595, + 598, + 615, + 655, + 665, + 675 + ], + [ + 257, + 513, + 595, + 608, + 615, + 628, + 655, + 675 + ], + [ + 258, + 258, + 599, + 615, + 618, + 655, + 656, + 675 + ], + [ + 258, + 259, + 598, + 615, + 618, + 655, + 656, + 675 + ], + [ + 258, + 308, + 595, + 609, + 615, + 655, + 665, + 675 + ], + [ + 258, + 314, + 595, + 615, + 618, + 655, + 657, + 675 + ], + [ + 258, + 314, + 595, + 615, + 618, + 656, + 656, + 675 + ], + [ + 258, + 320, + 596, + 615, + 618, + 655, + 656, + 675 + ], + [ + 258, + 357, + 595, + 614, + 618, + 655, + 656, + 675 + ], + [ + 258, + 357, + 595, + 615, + 617, + 655, + 656, + 675 + ], + [ + 258, + 361, + 595, + 615, + 618, + 655, + 655, + 675 + ], + [ + 258, + 363, + 595, + 615, + 618, + 655, + 656, + 674 + ], + [ + 258, + 379, + 595, + 615, + 635, + 639, + 655, + 675 + ], + [ + 258, + 379, + 595, + 615, + 636, + 638, + 655, + 675 + ], + [ + 258, + 382, + 595, + 615, + 629, + 645, + 655, + 675 + ], + [ + 258, + 422, + 595, + 615, + 615, + 655, + 656, + 675 + ], + [ + 258, + 423, + 595, + 614, + 615, + 655, + 656, + 675 + ], + [ + 258, + 433, + 595, + 600, + 615, + 655, + 672, + 675 + ], + [ + 258, + 433, + 595, + 609, + 615, + 655, + 663, + 675 + ], + [ + 258, + 433, + 595, + 615, + 618, + 653, + 656, + 675 + ], + [ + 258, + 433, + 595, + 615, + 618, + 654, + 655, + 675 + ], + [ + 258, + 433, + 595, + 615, + 627, + 645, + 655, + 675 + ], + [ + 258, + 433, + 595, + 615, + 633, + 639, + 655, + 675 + ], + [ + 258, + 433, + 595, + 615, + 636, + 636, + 655, + 675 + ], + [ + 258, + 433, + 596, + 599, + 615, + 655, + 672, + 675 + ], + [ + 258, + 434, + 595, + 615, + 618, + 652, + 656, + 675 + ], + [ + 258, + 434, + 595, + 615, + 618, + 653, + 655, + 675 + ], + [ + 258, + 435, + 595, + 615, + 618, + 652, + 655, + 675 + ], + [ + 258, + 440, + 595, + 615, + 618, + 655, + 656, + 672 + ], + [ + 258, + 441, + 595, + 615, + 618, + 655, + 656, + 671 + ], + [ + 258, + 441, + 599, + 614, + 615, + 652, + 655, + 675 + ], + [ + 258, + 453, + 595, + 606, + 618, + 655, + 656, + 675 + ], + [ + 258, + 456, + 595, + 609, + 615, + 655, + 656, + 675 + ], + [ + 258, + 459, + 595, + 615, + 618, + 655, + 656, + 666 + ], + [ + 258, + 493, + 595, + 615, + 617, + 639, + 655, + 675 + ], + [ + 258, + 493, + 595, + 615, + 618, + 637, + 656, + 675 + ], + [ + 258, + 493, + 599, + 604, + 615, + 648, + 655, + 675 + ], + [ + 258, + 494, + 595, + 615, + 618, + 638, + 655, + 675 + ], + [ + 258, + 502, + 595, + 615, + 618, + 628, + 656, + 675 + ], + [ + 258, + 503, + 595, + 615, + 618, + 629, + 655, + 675 + ], + [ + 258, + 504, + 595, + 615, + 618, + 648, + 655, + 656 + ], + [ + 258, + 513, + 595, + 615, + 618, + 639, + 655, + 656 + ], + [ + 258, + 513, + 599, + 606, + 615, + 628, + 655, + 675 + ], + [ + 258, + 514, + 514, + 615, + 618, + 655, + 656, + 675 + ], + [ + 258, + 534, + 534, + 595, + 618, + 655, + 656, + 675 + ], + [ + 258, + 534, + 540, + 595, + 615, + 655, + 656, + 675 + ], + [ + 258, + 534, + 574, + 595, + 615, + 639, + 655, + 675 + ], + [ + 258, + 537, + 537, + 595, + 615, + 655, + 656, + 675 + ], + [ + 258, + 574, + 574, + 595, + 615, + 618, + 656, + 675 + ], + [ + 258, + 574, + 576, + 595, + 615, + 618, + 655, + 675 + ], + [ + 258, + 575, + 575, + 595, + 615, + 618, + 655, + 675 + ], + [ + 258, + 594, + 594, + 595, + 615, + 618, + 655, + 656 + ], + [ + 259, + 320, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 259, + 363, + 595, + 615, + 617, + 655, + 655, + 675 + ], + [ + 259, + 383, + 595, + 615, + 628, + 645, + 655, + 675 + ], + [ + 259, + 433, + 595, + 599, + 615, + 655, + 672, + 675 + ], + [ + 259, + 433, + 596, + 598, + 615, + 655, + 672, + 675 + ], + [ + 259, + 434, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 259, + 440, + 595, + 615, + 628, + 642, + 655, + 675 + ], + [ + 259, + 441, + 598, + 614, + 615, + 652, + 655, + 675 + ], + [ + 259, + 493, + 598, + 604, + 615, + 648, + 655, + 675 + ], + [ + 259, + 504, + 595, + 615, + 618, + 628, + 655, + 675 + ], + [ + 259, + 513, + 598, + 606, + 615, + 628, + 655, + 675 + ], + [ + 259, + 534, + 594, + 595, + 615, + 628, + 655, + 675 + ], + [ + 260, + 433, + 595, + 598, + 615, + 655, + 672, + 675 + ], + [ + 281, + 281, + 595, + 598, + 615, + 655, + 674, + 675 + ], + [ + 285, + 285, + 595, + 615, + 618, + 655, + 656, + 675 + ], + [ + 288, + 379, + 595, + 595, + 615, + 655, + 675, + 675 + ], + [ + 290, + 379, + 595, + 596, + 615, + 655, + 674, + 675 + ], + [ + 290, + 387, + 595, + 606, + 615, + 655, + 664, + 675 + ], + [ + 294, + 379, + 595, + 604, + 615, + 655, + 666, + 675 + ], + [ + 294, + 387, + 595, + 614, + 615, + 655, + 656, + 675 + ], + [ + 296, + 387, + 595, + 615, + 615, + 655, + 655, + 675 + ], + [ + 308, + 308, + 595, + 596, + 615, + 655, + 674, + 675 + ], + [ + 308, + 369, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 308, + 436, + 595, + 596, + 615, + 655, + 672, + 675 + ], + [ + 308, + 441, + 595, + 605, + 615, + 655, + 661, + 675 + ], + [ + 308, + 456, + 595, + 596, + 615, + 655, + 665, + 675 + ], + [ + 314, + 320, + 595, + 606, + 615, + 655, + 666, + 675 + ], + [ + 314, + 339, + 595, + 605, + 615, + 655, + 666, + 675 + ], + [ + 314, + 357, + 595, + 604, + 615, + 655, + 666, + 675 + ], + [ + 314, + 363, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 314, + 433, + 595, + 596, + 615, + 656, + 672, + 675 + ], + [ + 314, + 434, + 595, + 596, + 615, + 655, + 672, + 675 + ], + [ + 314, + 441, + 595, + 614, + 615, + 652, + 656, + 675 + ], + [ + 314, + 441, + 595, + 614, + 615, + 653, + 655, + 675 + ], + [ + 314, + 453, + 595, + 596, + 615, + 655, + 666, + 675 + ], + [ + 314, + 493, + 595, + 604, + 615, + 648, + 656, + 675 + ], + [ + 314, + 513, + 595, + 606, + 615, + 628, + 656, + 675 + ], + [ + 314, + 514, + 534, + 595, + 615, + 655, + 666, + 675 + ], + [ + 317, + 317, + 595, + 606, + 615, + 655, + 666, + 675 + ], + [ + 317, + 332, + 595, + 605, + 615, + 655, + 666, + 675 + ], + [ + 317, + 345, + 595, + 606, + 615, + 655, + 665, + 675 + ], + [ + 317, + 360, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 317, + 494, + 595, + 605, + 615, + 648, + 655, + 675 + ], + [ + 317, + 513, + 595, + 606, + 615, + 629, + 655, + 675 + ], + [ + 318, + 441, + 595, + 615, + 615, + 652, + 655, + 675 + ], + [ + 319, + 493, + 595, + 605, + 615, + 648, + 655, + 675 + ], + [ + 320, + 339, + 595, + 606, + 615, + 655, + 665, + 675 + ], + [ + 320, + 357, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 320, + 363, + 595, + 606, + 615, + 655, + 664, + 675 + ], + [ + 320, + 433, + 595, + 597, + 615, + 655, + 672, + 675 + ], + [ + 320, + 433, + 596, + 596, + 615, + 655, + 672, + 675 + ], + [ + 320, + 440, + 595, + 615, + 615, + 653, + 655, + 675 + ], + [ + 320, + 441, + 596, + 614, + 615, + 652, + 655, + 675 + ], + [ + 320, + 459, + 595, + 606, + 615, + 655, + 656, + 675 + ], + [ + 320, + 493, + 596, + 604, + 615, + 648, + 655, + 675 + ], + [ + 320, + 513, + 596, + 606, + 615, + 628, + 655, + 675 + ], + [ + 320, + 574, + 594, + 595, + 606, + 615, + 655, + 675 + ], + [ + 332, + 332, + 595, + 604, + 615, + 655, + 666, + 675 + ], + [ + 332, + 345, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 332, + 360, + 595, + 604, + 615, + 655, + 665, + 675 + ], + [ + 332, + 494, + 595, + 604, + 615, + 648, + 655, + 675 + ], + [ + 332, + 513, + 595, + 605, + 615, + 629, + 655, + 675 + ], + [ + 339, + 339, + 595, + 605, + 615, + 655, + 665, + 675 + ], + [ + 339, + 357, + 595, + 604, + 615, + 655, + 665, + 675 + ], + [ + 339, + 363, + 595, + 605, + 615, + 655, + 664, + 675 + ], + [ + 339, + 453, + 595, + 596, + 615, + 655, + 665, + 675 + ], + [ + 339, + 459, + 595, + 605, + 615, + 655, + 656, + 675 + ], + [ + 339, + 514, + 534, + 595, + 615, + 655, + 665, + 675 + ], + [ + 339, + 574, + 594, + 595, + 605, + 615, + 655, + 675 + ], + [ + 345, + 345, + 595, + 606, + 615, + 655, + 664, + 675 + ], + [ + 345, + 360, + 595, + 605, + 615, + 655, + 664, + 675 + ], + [ + 345, + 493, + 595, + 605, + 615, + 647, + 655, + 675 + ], + [ + 345, + 512, + 595, + 606, + 615, + 628, + 655, + 675 + ], + [ + 355, + 433, + 595, + 595, + 615, + 655, + 672, + 675 + ], + [ + 356, + 453, + 595, + 595, + 615, + 655, + 665, + 675 + ], + [ + 356, + 513, + 595, + 605, + 615, + 628, + 655, + 675 + ], + [ + 357, + 363, + 595, + 604, + 615, + 655, + 664, + 675 + ], + [ + 357, + 433, + 595, + 596, + 614, + 655, + 672, + 675 + ], + [ + 357, + 434, + 595, + 595, + 615, + 655, + 671, + 675 + ], + [ + 357, + 441, + 595, + 613, + 615, + 652, + 655, + 675 + ], + [ + 357, + 441, + 595, + 614, + 614, + 652, + 655, + 675 + ], + [ + 357, + 452, + 595, + 595, + 615, + 655, + 665, + 675 + ], + [ + 357, + 459, + 595, + 604, + 615, + 655, + 656, + 675 + ], + [ + 357, + 493, + 595, + 604, + 614, + 648, + 655, + 675 + ], + [ + 357, + 513, + 595, + 606, + 614, + 628, + 655, + 675 + ], + [ + 357, + 574, + 594, + 595, + 604, + 615, + 655, + 675 + ], + [ + 360, + 360, + 595, + 604, + 615, + 655, + 664, + 675 + ], + [ + 360, + 493, + 595, + 604, + 615, + 647, + 655, + 675 + ], + [ + 360, + 512, + 595, + 605, + 615, + 628, + 655, + 675 + ], + [ + 362, + 459, + 595, + 605, + 615, + 655, + 655, + 675 + ], + [ + 363, + 433, + 595, + 596, + 615, + 655, + 671, + 675 + ], + [ + 363, + 433, + 595, + 596, + 615, + 655, + 672, + 674 + ], + [ + 363, + 440, + 595, + 614, + 615, + 652, + 655, + 675 + ], + [ + 363, + 441, + 595, + 614, + 615, + 652, + 655, + 674 + ], + [ + 363, + 453, + 595, + 596, + 615, + 655, + 664, + 675 + ], + [ + 363, + 458, + 595, + 605, + 615, + 655, + 655, + 675 + ], + [ + 363, + 493, + 595, + 604, + 615, + 648, + 655, + 674 + ], + [ + 363, + 513, + 595, + 606, + 615, + 628, + 655, + 674 + ], + [ + 363, + 514, + 534, + 595, + 615, + 655, + 664, + 675 + ], + [ + 369, + 369, + 595, + 614, + 615, + 655, + 656, + 675 + ], + [ + 369, + 433, + 595, + 605, + 615, + 655, + 663, + 675 + ], + [ + 369, + 438, + 595, + 614, + 615, + 652, + 655, + 675 + ], + [ + 369, + 456, + 595, + 605, + 615, + 655, + 656, + 675 + ], + [ + 379, + 381, + 595, + 615, + 622, + 648, + 655, + 675 + ], + [ + 379, + 385, + 595, + 598, + 615, + 655, + 672, + 675 + ], + [ + 379, + 387, + 595, + 599, + 615, + 655, + 671, + 675 + ], + [ + 379, + 387, + 595, + 608, + 615, + 655, + 662, + 675 + ], + [ + 379, + 387, + 595, + 615, + 617, + 653, + 655, + 675 + ], + [ + 379, + 387, + 595, + 615, + 626, + 644, + 655, + 675 + ], + [ + 379, + 387, + 595, + 615, + 631, + 639, + 655, + 675 + ], + [ + 379, + 387, + 595, + 615, + 632, + 638, + 655, + 675 + ], + [ + 379, + 387, + 595, + 615, + 633, + 637, + 655, + 675 + ], + [ + 379, + 387, + 595, + 615, + 634, + 636, + 655, + 675 + ], + [ + 379, + 387, + 595, + 615, + 635, + 635, + 655, + 675 + ], + [ + 379, + 427, + 595, + 596, + 615, + 655, + 672, + 675 + ], + [ + 379, + 429, + 595, + 595, + 615, + 655, + 671, + 675 + ], + [ + 379, + 432, + 595, + 604, + 615, + 655, + 662, + 675 + ], + [ + 379, + 438, + 595, + 615, + 622, + 644, + 655, + 675 + ], + [ + 379, + 441, + 595, + 615, + 631, + 635, + 655, + 675 + ], + [ + 379, + 441, + 595, + 615, + 632, + 634, + 655, + 675 + ], + [ + 379, + 491, + 595, + 604, + 615, + 648, + 655, + 675 + ], + [ + 379, + 509, + 595, + 595, + 615, + 639, + 655, + 675 + ], + [ + 379, + 510, + 595, + 596, + 615, + 638, + 655, + 675 + ], + [ + 379, + 512, + 595, + 598, + 615, + 636, + 655, + 675 + ], + [ + 379, + 513, + 595, + 599, + 615, + 635, + 655, + 675 + ], + [ + 379, + 513, + 595, + 608, + 615, + 626, + 655, + 675 + ], + [ + 379, + 514, + 594, + 595, + 615, + 635, + 655, + 675 + ], + [ + 380, + 380, + 595, + 615, + 622, + 648, + 655, + 675 + ], + [ + 380, + 386, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 380, + 437, + 595, + 615, + 622, + 645, + 655, + 675 + ], + [ + 380, + 490, + 595, + 604, + 615, + 648, + 655, + 675 + ], + [ + 380, + 513, + 595, + 609, + 615, + 625, + 655, + 675 + ], + [ + 381, + 387, + 595, + 615, + 618, + 652, + 655, + 675 + ], + [ + 382, + 382, + 595, + 598, + 615, + 655, + 672, + 675 + ], + [ + 382, + 384, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 382, + 424, + 595, + 596, + 615, + 655, + 672, + 675 + ], + [ + 382, + 441, + 595, + 615, + 625, + 641, + 655, + 675 + ], + [ + 382, + 503, + 595, + 598, + 615, + 645, + 655, + 675 + ], + [ + 383, + 383, + 595, + 615, + 625, + 645, + 655, + 675 + ], + [ + 383, + 434, + 595, + 615, + 622, + 645, + 655, + 675 + ], + [ + 383, + 440, + 595, + 615, + 625, + 642, + 655, + 675 + ], + [ + 383, + 502, + 595, + 598, + 615, + 645, + 655, + 675 + ], + [ + 383, + 504, + 595, + 615, + 618, + 625, + 655, + 675 + ], + [ + 383, + 514, + 574, + 595, + 615, + 645, + 655, + 675 + ], + [ + 383, + 534, + 594, + 595, + 615, + 625, + 655, + 675 + ], + [ + 384, + 384, + 595, + 615, + 618, + 652, + 655, + 675 + ], + [ + 384, + 432, + 595, + 614, + 615, + 652, + 655, + 675 + ], + [ + 384, + 433, + 595, + 615, + 623, + 645, + 655, + 675 + ], + [ + 384, + 503, + 595, + 615, + 618, + 625, + 655, + 675 + ], + [ + 385, + 387, + 595, + 615, + 628, + 642, + 655, + 675 + ], + [ + 386, + 386, + 595, + 615, + 628, + 642, + 655, + 675 + ], + [ + 386, + 437, + 595, + 615, + 625, + 642, + 655, + 675 + ], + [ + 386, + 493, + 595, + 607, + 615, + 645, + 655, + 675 + ], + [ + 386, + 510, + 595, + 606, + 615, + 628, + 655, + 675 + ], + [ + 387, + 424, + 595, + 606, + 615, + 655, + 662, + 675 + ], + [ + 387, + 427, + 595, + 615, + 615, + 653, + 655, + 675 + ], + [ + 387, + 429, + 595, + 614, + 615, + 652, + 655, + 675 + ], + [ + 387, + 433, + 595, + 615, + 632, + 636, + 655, + 675 + ], + [ + 387, + 433, + 595, + 615, + 633, + 635, + 655, + 675 + ], + [ + 387, + 436, + 595, + 615, + 626, + 642, + 655, + 675 + ], + [ + 387, + 490, + 595, + 614, + 615, + 638, + 655, + 675 + ], + [ + 387, + 491, + 595, + 615, + 615, + 637, + 655, + 675 + ], + [ + 387, + 493, + 595, + 608, + 615, + 644, + 655, + 675 + ], + [ + 387, + 493, + 595, + 615, + 617, + 635, + 655, + 675 + ], + [ + 387, + 494, + 595, + 615, + 618, + 634, + 655, + 675 + ], + [ + 387, + 509, + 595, + 606, + 615, + 628, + 655, + 675 + ], + [ + 387, + 534, + 574, + 595, + 615, + 635, + 655, + 675 + ], + [ + 406, + 406, + 595, + 596, + 615, + 655, + 672, + 675 + ], + [ + 414, + 414, + 595, + 614, + 615, + 652, + 655, + 675 + ], + [ + 424, + 503, + 595, + 596, + 615, + 645, + 655, + 675 + ], + [ + 424, + 513, + 595, + 606, + 615, + 626, + 655, + 675 + ], + [ + 425, + 502, + 595, + 595, + 615, + 645, + 655, + 675 + ], + [ + 425, + 513, + 595, + 606, + 615, + 625, + 655, + 675 + ], + [ + 431, + 493, + 595, + 604, + 615, + 645, + 655, + 675 + ], + [ + 431, + 504, + 595, + 615, + 615, + 625, + 655, + 675 + ], + [ + 432, + 493, + 595, + 604, + 615, + 644, + 655, + 675 + ], + [ + 432, + 503, + 595, + 614, + 615, + 625, + 655, + 675 + ], + [ + 433, + 433, + 595, + 596, + 615, + 653, + 672, + 675 + ], + [ + 433, + 434, + 595, + 596, + 615, + 652, + 672, + 675 + ], + [ + 433, + 440, + 595, + 596, + 615, + 655, + 669, + 675 + ], + [ + 433, + 440, + 595, + 596, + 615, + 655, + 672, + 672 + ], + [ + 433, + 441, + 595, + 596, + 615, + 655, + 668, + 675 + ], + [ + 433, + 441, + 595, + 596, + 615, + 655, + 671, + 672 + ], + [ + 433, + 441, + 595, + 605, + 615, + 655, + 659, + 675 + ], + [ + 433, + 441, + 595, + 614, + 615, + 650, + 655, + 675 + ], + [ + 433, + 441, + 595, + 614, + 615, + 652, + 653, + 675 + ], + [ + 433, + 441, + 595, + 615, + 623, + 641, + 655, + 675 + ], + [ + 433, + 441, + 595, + 615, + 631, + 633, + 655, + 675 + ], + [ + 433, + 441, + 595, + 615, + 632, + 632, + 655, + 675 + ], + [ + 433, + 453, + 595, + 596, + 606, + 655, + 672, + 675 + ], + [ + 433, + 456, + 595, + 596, + 615, + 655, + 663, + 675 + ], + [ + 433, + 459, + 595, + 596, + 615, + 655, + 666, + 672 + ], + [ + 433, + 493, + 595, + 596, + 615, + 637, + 672, + 675 + ], + [ + 433, + 493, + 595, + 604, + 615, + 648, + 653, + 675 + ], + [ + 433, + 501, + 595, + 596, + 615, + 645, + 655, + 675 + ], + [ + 433, + 502, + 595, + 596, + 615, + 628, + 672, + 675 + ], + [ + 433, + 504, + 595, + 596, + 615, + 648, + 655, + 672 + ], + [ + 433, + 510, + 595, + 596, + 615, + 636, + 655, + 675 + ], + [ + 433, + 513, + 595, + 596, + 615, + 639, + 655, + 672 + ], + [ + 433, + 513, + 595, + 599, + 615, + 633, + 655, + 675 + ], + [ + 433, + 513, + 595, + 606, + 615, + 628, + 653, + 675 + ], + [ + 433, + 514, + 514, + 596, + 615, + 655, + 672, + 675 + ], + [ + 433, + 514, + 516, + 595, + 615, + 655, + 672, + 675 + ], + [ + 433, + 514, + 594, + 595, + 615, + 633, + 655, + 675 + ], + [ + 433, + 515, + 515, + 595, + 615, + 655, + 672, + 675 + ], + [ + 433, + 534, + 534, + 595, + 596, + 655, + 672, + 675 + ], + [ + 433, + 574, + 574, + 595, + 596, + 615, + 672, + 675 + ], + [ + 433, + 588, + 594, + 595, + 596, + 615, + 655, + 675 + ], + [ + 433, + 591, + 591, + 595, + 596, + 615, + 655, + 675 + ], + [ + 433, + 594, + 594, + 595, + 596, + 615, + 655, + 672 + ], + [ + 434, + 440, + 595, + 615, + 622, + 642, + 655, + 675 + ], + [ + 434, + 441, + 595, + 614, + 615, + 649, + 655, + 675 + ], + [ + 434, + 441, + 595, + 614, + 615, + 652, + 652, + 675 + ], + [ + 434, + 493, + 595, + 604, + 615, + 648, + 652, + 675 + ], + [ + 434, + 499, + 595, + 595, + 615, + 645, + 655, + 675 + ], + [ + 434, + 504, + 595, + 615, + 618, + 622, + 655, + 675 + ], + [ + 434, + 513, + 595, + 606, + 615, + 628, + 652, + 675 + ], + [ + 434, + 534, + 594, + 595, + 615, + 622, + 655, + 675 + ], + [ + 436, + 438, + 595, + 615, + 622, + 642, + 655, + 675 + ], + [ + 437, + 437, + 595, + 615, + 622, + 642, + 655, + 675 + ], + [ + 437, + 490, + 595, + 604, + 615, + 645, + 655, + 675 + ], + [ + 437, + 510, + 595, + 606, + 615, + 625, + 655, + 675 + ], + [ + 438, + 456, + 595, + 605, + 615, + 652, + 655, + 675 + ], + [ + 440, + 441, + 595, + 614, + 615, + 652, + 655, + 672 + ], + [ + 440, + 493, + 595, + 604, + 615, + 648, + 655, + 672 + ], + [ + 440, + 501, + 595, + 615, + 615, + 625, + 655, + 675 + ], + [ + 440, + 502, + 595, + 598, + 615, + 642, + 655, + 675 + ], + [ + 440, + 513, + 595, + 606, + 615, + 628, + 655, + 672 + ], + [ + 440, + 514, + 574, + 595, + 615, + 642, + 655, + 675 + ], + [ + 441, + 441, + 595, + 614, + 615, + 652, + 655, + 671 + ], + [ + 441, + 452, + 595, + 605, + 615, + 652, + 655, + 675 + ], + [ + 441, + 453, + 595, + 606, + 614, + 652, + 655, + 675 + ], + [ + 441, + 459, + 595, + 614, + 615, + 652, + 655, + 666 + ], + [ + 441, + 490, + 595, + 614, + 615, + 634, + 655, + 675 + ], + [ + 441, + 493, + 595, + 604, + 615, + 648, + 655, + 671 + ], + [ + 441, + 493, + 595, + 614, + 615, + 637, + 652, + 675 + ], + [ + 441, + 493, + 595, + 615, + 617, + 631, + 655, + 675 + ], + [ + 441, + 499, + 595, + 614, + 615, + 625, + 655, + 675 + ], + [ + 441, + 502, + 595, + 614, + 615, + 628, + 652, + 675 + ], + [ + 441, + 504, + 595, + 614, + 615, + 648, + 652, + 655 + ], + [ + 441, + 513, + 595, + 606, + 615, + 628, + 655, + 671 + ], + [ + 441, + 513, + 595, + 614, + 615, + 639, + 652, + 655 + ], + [ + 441, + 514, + 514, + 614, + 615, + 652, + 655, + 675 + ], + [ + 441, + 532, + 534, + 595, + 615, + 652, + 655, + 675 + ], + [ + 441, + 533, + 533, + 595, + 615, + 652, + 655, + 675 + ], + [ + 441, + 534, + 534, + 595, + 614, + 652, + 655, + 675 + ], + [ + 441, + 534, + 574, + 595, + 615, + 631, + 655, + 675 + ], + [ + 441, + 568, + 574, + 595, + 614, + 615, + 655, + 675 + ], + [ + 441, + 571, + 571, + 595, + 614, + 615, + 655, + 675 + ], + [ + 441, + 574, + 574, + 595, + 614, + 615, + 652, + 675 + ], + [ + 441, + 594, + 594, + 595, + 614, + 615, + 652, + 655 + ], + [ + 451, + 493, + 595, + 595, + 615, + 648, + 655, + 675 + ], + [ + 453, + 459, + 595, + 596, + 615, + 655, + 656, + 675 + ], + [ + 453, + 493, + 595, + 604, + 606, + 648, + 655, + 675 + ], + [ + 453, + 502, + 595, + 595, + 615, + 639, + 655, + 675 + ], + [ + 453, + 513, + 595, + 597, + 615, + 628, + 655, + 675 + ], + [ + 453, + 513, + 595, + 606, + 606, + 628, + 655, + 675 + ], + [ + 453, + 574, + 594, + 595, + 596, + 615, + 655, + 675 + ], + [ + 456, + 456, + 595, + 596, + 615, + 655, + 656, + 675 + ], + [ + 459, + 493, + 595, + 604, + 615, + 639, + 655, + 675 + ], + [ + 459, + 493, + 595, + 604, + 615, + 648, + 655, + 666 + ], + [ + 459, + 504, + 595, + 606, + 615, + 628, + 655, + 675 + ], + [ + 459, + 513, + 595, + 606, + 615, + 628, + 655, + 666 + ], + [ + 459, + 514, + 534, + 595, + 615, + 655, + 656, + 675 + ], + [ + 466, + 466, + 595, + 604, + 615, + 648, + 655, + 675 + ], + [ + 486, + 486, + 595, + 606, + 615, + 628, + 655, + 675 + ], + [ + 493, + 493, + 595, + 604, + 615, + 637, + 648, + 675 + ], + [ + 493, + 502, + 595, + 604, + 615, + 628, + 648, + 675 + ], + [ + 493, + 504, + 595, + 604, + 615, + 621, + 655, + 675 + ], + [ + 493, + 504, + 595, + 604, + 615, + 648, + 648, + 655 + ], + [ + 493, + 513, + 595, + 599, + 615, + 617, + 655, + 675 + ], + [ + 493, + 513, + 595, + 604, + 612, + 615, + 655, + 675 + ], + [ + 493, + 513, + 595, + 604, + 615, + 639, + 648, + 655 + ], + [ + 493, + 513, + 595, + 605, + 611, + 615, + 655, + 675 + ], + [ + 493, + 513, + 595, + 606, + 610, + 615, + 655, + 675 + ], + [ + 493, + 513, + 595, + 606, + 615, + 628, + 637, + 675 + ], + [ + 493, + 513, + 595, + 607, + 609, + 615, + 655, + 675 + ], + [ + 493, + 513, + 595, + 608, + 608, + 615, + 655, + 675 + ], + [ + 493, + 514, + 514, + 604, + 615, + 648, + 655, + 675 + ], + [ + 493, + 514, + 532, + 595, + 615, + 648, + 655, + 675 + ], + [ + 493, + 514, + 594, + 595, + 615, + 617, + 655, + 675 + ], + [ + 493, + 523, + 523, + 595, + 615, + 648, + 655, + 675 + ], + [ + 493, + 534, + 534, + 595, + 604, + 648, + 655, + 675 + ], + [ + 493, + 540, + 594, + 595, + 604, + 615, + 655, + 675 + ], + [ + 493, + 567, + 567, + 595, + 604, + 615, + 655, + 675 + ], + [ + 493, + 574, + 574, + 595, + 604, + 615, + 648, + 675 + ], + [ + 493, + 594, + 594, + 595, + 604, + 615, + 648, + 655 + ], + [ + 494, + 512, + 595, + 598, + 615, + 618, + 655, + 675 + ], + [ + 502, + 504, + 595, + 598, + 615, + 618, + 655, + 675 + ], + [ + 502, + 513, + 595, + 601, + 606, + 615, + 655, + 675 + ], + [ + 502, + 513, + 595, + 606, + 615, + 628, + 628, + 675 + ], + [ + 502, + 534, + 594, + 595, + 598, + 615, + 655, + 675 + ], + [ + 503, + 503, + 595, + 598, + 615, + 618, + 655, + 675 + ], + [ + 504, + 513, + 595, + 606, + 615, + 628, + 648, + 655 + ], + [ + 504, + 514, + 574, + 595, + 615, + 618, + 655, + 675 + ], + [ + 513, + 513, + 595, + 606, + 615, + 628, + 639, + 655 + ], + [ + 513, + 514, + 514, + 606, + 615, + 628, + 655, + 675 + ], + [ + 513, + 516, + 534, + 595, + 615, + 628, + 655, + 675 + ], + [ + 513, + 520, + 574, + 595, + 606, + 615, + 655, + 675 + ], + [ + 513, + 525, + 525, + 595, + 615, + 628, + 655, + 675 + ], + [ + 513, + 534, + 534, + 595, + 606, + 628, + 655, + 675 + ], + [ + 513, + 534, + 574, + 595, + 599, + 615, + 655, + 675 + ], + [ + 513, + 547, + 547, + 595, + 606, + 615, + 655, + 675 + ], + [ + 513, + 574, + 574, + 595, + 606, + 615, + 628, + 675 + ], + [ + 513, + 594, + 594, + 595, + 606, + 615, + 628, + 655 + ], + [ + 514, + 534, + 574, + 594, + 595, + 615, + 655, + 675 + ] + ], + "subset_census_seven": { + "1": 8 + }, + "subset_census_eight": { + "1": 690, + "2": 80, + "4": 6 + }, + "rank_survivors_eight": [ + [ + 10, + 595, + 605, + 615, + 655, + 655, + 675, + 675 + ], + [ + 30, + 595, + 615, + 615, + 625, + 655, + 675, + 675 + ], + [ + 50, + 595, + 595, + 615, + 645, + 655, + 655, + 675 + ], + [ + 70, + 595, + 595, + 615, + 615, + 655, + 665, + 675 + ], + [ + 288, + 379, + 595, + 595, + 615, + 655, + 675, + 675 + ], + [ + 296, + 387, + 595, + 615, + 615, + 655, + 655, + 675 + ] + ], + "character_obstructions": [ + { + "frames": [ + 10, + 595, + 605, + 615, + 655, + 655, + 675, + 675 + ], + "functional": [ + "-1/4", + "-1/4", + "-1/4", + "0", + "0", + "1/4", + "0", + "0", + "1/2" + ], + "frame_values": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "target_value": 1 + }, + { + "frames": [ + 30, + 595, + 615, + 615, + 625, + 655, + 675, + 675 + ], + "functional": [ + "-1/4", + "-1/4", + "-1/4", + "0", + "1/2", + "1/4", + "0", + "0", + "0" + ], + "frame_values": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "target_value": 1 + }, + { + "frames": [ + 50, + 595, + 595, + 615, + 645, + 655, + 655, + 675 + ], + "functional": [ + "-1/4", + "-1/4", + "1/4", + "0", + "1/2", + "-1/4", + "0", + "0", + "0" + ], + "frame_values": [ + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + "target_value": 1 + }, + { + "frames": [ + 70, + 595, + 595, + 615, + 615, + 655, + 665, + 675 + ], + "functional": [ + "-1/4", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "0", + "0", + "1/2" + ], + "frame_values": [ + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + "target_value": 1 + }, + { + "frames": [ + 288, + 379, + 595, + 595, + 615, + 655, + 675, + 675 + ], + "functional": [ + "1/2", + "-1/4", + "1/4", + "0", + "-1/4", + "-1/4", + "0", + "0", + "0" + ], + "frame_values": [ + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + "target_value": 1 + }, + { + "frames": [ + 296, + 387, + 595, + 615, + 615, + 655, + 655, + 675 + ], + "functional": [ + "1/2", + "-1/4", + "-1/4", + "0", + "-1/4", + "1/4", + "0", + "0", + "0" + ], + "frame_values": [ + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "target_value": 1 + } + ], + "nine_call_witness": [ + { + "frame_id": 170, + "role": 0 + }, + { + "frame_id": 642, + "role": 0 + }, + { + "frame_id": 664, + "role": 0 + }, + { + "frame_id": 170, + "role": 1 + }, + { + "frame_id": 642, + "role": 1 + }, + { + "frame_id": 664, + "role": 1 + }, + { + "frame_id": 170, + "role": 2 + }, + { + "frame_id": 642, + "role": 2 + }, + { + "frame_id": 664, + "role": 2 + } + ] +} diff --git a/research/bit-quarter-ternary-catalyst/README.md b/research/bit-quarter-ternary-catalyst/README.md new file mode 100644 index 0000000000..36f988ebfe --- /dev/null +++ b/research/bit-quarter-ternary-catalyst/README.md @@ -0,0 +1,137 @@ +# Quarter-integral ternary frames still require nine calls + +**Result:** Adding all quarter-integral ternary frames to the half-integral +alphabet does not permit eight calls, even with any finite restored dirty +workspace. This is a scoped computer-assisted theorem, not a multiplication +lower bound or a new exponent saving. + +## Model and proof reduction + +For any finite R >= 3 work in F₂[M₃(Q)], the group algebra of the additive +rational matrix group. Write [A][B]=[A+B]. A paid call is + + D_N([A]) = I_R + ([A]-1)N, + N²=N, rank_F₂(N)=1, + A ∈ {uvᵀ/2, uvᵀ/4 : u,v ∈ {-1,0,1}³ \ {0}}. + +The required formal endpoint is diag([I₃],[I₃],[I₃],1,…,1). Incoming dirty +registers are arbitrary and restored without residual influence. Intervening +free address transformations are not part of this alphabet. Scalar mixing is +already allowed by arbitrary rank-one idempotents N. + +Scale exponents by four: B=4A, T=4I₃. The 676 distinct frames are uvᵀ and +2uvᵀ; their entries lie in [-2,2]. For N=xyᵀ with yᵀx=1 the determinant +lemma gives det(D_N([B]))=[B]. Thus every k-call solution has ΣB=3T=12I₃. +Expanding calls as (I-N)+[B]N, each nonempty positional subset contributes a +matrix of rank at most one. The target coefficient at [T] has rank three, +so at least three positional subsets must sum to T. Repeated occurrences +count separately; cancellations only weaken this necessary condition. + +A target subset has at least three members by rational rank. Its complement +sums to 2T=8I₃ and has at least four members by the diagonal bound B_ii<=2. +Therefore k<=6 is impossible. For k=7 the only split is 3+4; for k=8 the +splits are 3+5 and 4+4. Four frames summing to 8I₃ all have diagonal (2,2,2). +They are 2wwᵀ with w=(1,s,t), s,t∈{±1}; the off-diagonal equations force +one of each. The verifier explicitly checks uniqueness with repetitions. + +For five frames summing to 8I₃ every diagonal entry of each frame must be +nonnegative: one negative entry plus four entries <=2 would sum to at most +seven. Their total trace is 24. Each frame has trace <=6; thus in the primary +three-plus-two enumeration the triple trace is >=12 and pair trace >=6. +These are necessary filters, not symmetry assumptions. The second census +uses only recursive coordinate bounds and a final-frame lookup instead. + +| Exact decomposition | Count | +|---|---:| +| T in three frames | 8 | +| T in four frames | 552 | +| 2T in four frames | 1 | +| 2T in five frames | 28 | + +Union and deduplicate these decompositions. There are eight seven-call +candidates, each with one positional target subset. The eight-call census is: + +| Positional target subsets | Candidate multisets | +|---|---:| +| 1 | 690 | +| 2 | 80 | +| 4 | 6 | + +These 776 are all determinant-compatible multisets *having a target subset*, +not all determinant-compatible multisets. Those without a target subset fail +immediately. The first 770 fail coefficient rank. All orders and repetitions +are covered; no scalar-projector enumeration or register bound is imposed. + +For each of the six survivors CERTIFICATE.json supplies a rational linear +functional ell with integer values on its eight frames, exactly one odd +frame value, and ell(T)=1. Let L be the subgroup generated by those frames. +A target subset puts T in L. The character B↦g^(ell(B) mod 2) maps L to C₂ +and induces F₂[L]→F₂[C₂]. Seven paid factors become identity; one remains +I+(g-1)N. Comparing the formal coefficient of g with the endpoint gives +N=diag(1,1,1,0,…,0), contradicting ranks one and three. No character on the +full divisible M₃(Q), fraction field, or rank over F₂[C₂] is asserted. + +A triple summing to T exists. Apply its three calls to each of the first +three coordinate projectors: this gives nine calls and the exact endpoint. +All other registers are untouched, proving attainability for every finite R. +The primary verifier replays formal matrix coefficients at R=3,4,6; the +block-diagonal argument extends this explicit word to arbitrary R. + +## Delta, budget and predecessors + +Tuafo's PR #1604, head c5f5bef84f6648d5573f801c283e01a333ea5f89, +proves the half-integral 338-frame result. Its exact census has 473 four-frame +target decompositions, 24 five-frame complements and 665 eight-call candidates. +Our extension adds 79, 4 and 111 respectively. The six survivors are the same +physical frames. We reuse and adapt its primary and independent implementations; +these are two different enumeration methods, **not fresh independent authorship** +or independent human review. The local theorem replays without downloading or +importing the predecessor. Exact original-file SHA256s are in SOURCES.json. + +Credit Ali Romman's #468 and its eumemic #288 / huxint #203 lineage for the +three-register obstruction; arbitrary dirty-register scope is different. +Credit woklerx #1456 (83b6ad2ace819a96128131a3600ee914a66dd0dd) for broader +at-most-one-relation obstructions and parity-character methods, and Cinna Davis +#1541 (194724d87505ec2517fdca1c1884da12398f4c33) for a different nonabelian +model. No novelty of the determinant, rank, or character technique is claimed. + +The favorable eight-call recursive moment is (8/9)3^a for the three requested +outputs. Nine calls instead give 3^a>=1 for a>=0. Nonnegative additional +hosting, transport and restoration charges cannot improve that budget. Restored +spectators do not count as additional completed outputs. This rejects only this +explicit enlarged alphabet, not unrestricted rational frames, larger vector +entries, nonabelian operations, or integer multiplication. The selected +supplier/frontier is unchanged and its complete cold replay was not run. +The orientation-only `scripts/research_baseline.py` was attempted and failed +because `research/community-frontier1094-audit/ASSEMBLY.json` is absent in this +checkout; no selected-record baseline success is claimed. + +## Reproduce + +Standard library, CPython 3.12 (locally 3.12.8 on macOS): + +```sh +python3 -I -O -B research/bit-quarter-ternary-catalyst/verify.py +python3 -I -B research/bit-quarter-ternary-catalyst/independent.py +python3 -B scripts/research_package.py --package research/bit-quarter-ternary-catalyst +``` + +Default replay is read-only. Primary `--write` explicitly regenerates the +certificate. Eight corrupted-certificate controls are rejected by the primary; +two more by the second checker. The latter also checks subset multiplicities +by binomial weights and deliberately refuses -O because it uses assertions. +No floating-point or finite-address test is used as acceptance evidence. + +## Open next questions + +Can the same exclusion be proved uniformly for {uvᵀ/2^j : j>=1} with ternary +vectors? It would replace repeated denominator extensions by a symbolic theorem. +A feasible first step is to classify quarter-frame occurrences in the new +3+5 and 4+4 decompositions and derive a denominator-independent elimination. +The blocker is that smaller dyadic entries introduce new diagonal-deficit +patterns; this finite census does not cover them. See TASK.json for the +structured question. We deliberately do not launch a further alphabet search. + +Prepared for Maximooch with substantial OpenAI assistance for research, adaptation, +proof checking and packaging. Apache-2.0, retaining predecessor credit. +No proof-assistant formalization or independent human review is claimed. diff --git a/research/bit-quarter-ternary-catalyst/SOURCES.json b/research/bit-quarter-ternary-catalyst/SOURCES.json new file mode 100644 index 0000000000..9acee17332 --- /dev/null +++ b/research/bit-quarter-ternary-catalyst/SOURCES.json @@ -0,0 +1,36 @@ +{ + "schema_version": 1, + "base_commit": "418e40eb2572d930b58c1cf9b82b41c0fc7ee08d", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "06c96f5579bb67ed1b86d334e78fbed7da6945f1", + "sha256": "6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075" + }, + { + "path": "research/bit-three-register-lower-bound/README.md", + "usage": "input", + "git_blob": "25e41c370c101a33a6deb978de08b03ed7539b79", + "sha256": "c12b33ef388deece0cbf891505a2ce2c0779a0c3a6cf1f0f7f7039bab59cbebd" + } + ], + "external_predecessor": { + "repository": "CrocSwap/integer-mult-bounds", + "pr": 1604, + "head": "c5f5bef84f6648d5573f801c283e01a333ea5f89", + "files": { + "README.md": "de8817293dc5793224b894a08871065bdab7da81ff9b6e81728a32e2d0681584", + "verify.py": "07571c0f93dc1df4225fffcf6b135d84a704fb3e4777b99ea729c734018c95e6", + "independent.py": "15d1a278314ee99b42317401b3de812d88c9a14e021489c0bacab2613d374f8a", + "CERTIFICATE.json": "6d6bf2c4d260bd76b85b20fcca59869142f23810db66984cc94b502c2c30b8b3" + }, + "usage": "Attribution and historical source of adapted algorithms; no runtime import or network dependency." + } +} diff --git a/research/bit-quarter-ternary-catalyst/TASK.json b/research/bit-quarter-ternary-catalyst/TASK.json new file mode 100644 index 0000000000..71334c848e --- /dev/null +++ b/research/bit-quarter-ternary-catalyst/TASK.json @@ -0,0 +1,64 @@ +{ + "schema_version": 1, + "task_id": "bit-new-register-model", + "priority_revision": 3, + "base_commit": "418e40eb2572d930b58c1cf9b82b41c0fc7ee08d", + "original_card": { + "id": "bit-new-register-model", + "question": "Can an explicitly larger or nonabelian register model escape the scoped three-register obstruction?", + "starting_points": [ + "research/bit-three-register-lower-bound/README.md", + "certificates/selected-result.json" + ], + "methods": [ + "Construct the smallest exact identity in a newly specified legal operation alphabet.", + "Derive a target-specific relaxation bound for that same explicit alphabet." + ], + "acceptance_gate": "Name the changed hypothesis, all counted roles and a uniform identity; finite column tests alone do not certify it.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read Model section 1 of the three-register bound and identify the exact excluded free operations.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Write a complete operation alphabet outside one named premise and price a baseline before searching identities.", + "bottleneck_link": "A small-width completed saving changes the bit primitive; a finite-address identity alone is insufficient.", + "allowed_variations": [ + "Choose a fixed larger register count or a specified nonabelian operation family." + ], + "scope_change_triggers": [ + "Remaining inside the already-excluded three-register abelian model." + ], + "overlap_terms": [ + "three-register", + "nonabelian", + "group algebra" + ] + }, + "scope_status": "refined", + "actual_scope": "Exactly nine calls for three identity targets in A={uv^T/2,uv^T/4}, nonzero ternary 3-vectors, arbitrary finite restored dirty registers.", + "scope_change_reason": "Enlarge scalar register space beyond the three-register restriction; extend the half-integral alphabet of PR1604 to include quarter-integral frames. This remains a scoped negative-result investigation.", + "bottleneck_link": "Eight calls would have favorable moment (8/9)*3^a; nine give 3^a and no positive saving even before additional nonnegative charges.", + "budget_minutes": 60, + "stop_rule": "Complete exact census through eight calls, compare two enumeration methods, verify characters and nine-call witness; stop without another alphabet extension.", + "outcome": "completed", + "evidence": "README proof reduction; CERTIFICATE exact census; primary and code-disjoint adapted second enumeration agree; 8+2 corrupted-certificate controls.", + "author": "Maximooch", + "ai_assistance": "Substantial OpenAI assistance for Maximooch: research, adapting Tuafo PR1604 code, exact proof checking, verification and packaging. No independent human review.", + "open_questions": [ + { + "question": "Can ternary dyadic frames uv^T/2^j for all j>=1 be excluded uniformly at eight calls?", + "why_it_matters": "Avoid repeated finite denominator searches and identify the arithmetic restriction that must change.", + "first_step": "Classify quarter-frame occurrences in the additional decomposition multisets and seek a symbolic diagonal-deficit elimination.", + "blocked_by": "Smaller dyadic entries allow new deficit patterns; the finite census supplies no uniform theorem." + } + ], + "coordination": { + "discussion": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1594#discussioncomment-18916871" + }, + "predecessor_head": "c5f5bef84f6648d5573f801c283e01a333ea5f89" +} diff --git a/research/bit-quarter-ternary-catalyst/VERIFY.json b/research/bit-quarter-ternary-catalyst/VERIFY.json new file mode 100644 index 0000000000..cafd9515bf --- /dev/null +++ b/research/bit-quarter-ternary-catalyst/VERIFY.json @@ -0,0 +1,32 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/bit-three-register-lower-bound/README.md" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Exact complete census, six parity characters, formal nine-call witness and eight failure controls." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/independent.py" + ], + "timeout_seconds": 120, + "checks": "Different enumeration method, binomial subset counts, fresh character solutions and two corruption controls; adapted from credited predecessor." + } + ] +} diff --git a/research/bit-quarter-ternary-catalyst/independent.py b/research/bit-quarter-ternary-catalyst/independent.py new file mode 100644 index 0000000000..911e2ae73a --- /dev/null +++ b/research/bit-quarter-ternary-catalyst/independent.py @@ -0,0 +1,320 @@ +#!/usr/bin/env python3 +"""Independent finite census for the dyadic ternary rank-one alphabet. + +Adapted from Tuafo / PR1604 at c5f5bef84f6648d5573f801c283e01a333ea5f89. +Apache-2.0; substantial OpenAI assistance for Maximooch. + +Uses ordered depth-first tuple enumeration, coordinate bounds, and final-frame +lookup. Does not import the primary verifier. Every repeated occurrence remains +a separate position for coefficient-subset counts. Standard library only. +""" +from __future__ import annotations + +import argparse +from collections import Counter +from fractions import Fraction +from hashlib import sha256 +from itertools import product +from math import comb +from pathlib import Path +import json +import platform +import time + +if not __debug__: + raise RuntimeError("Run this independent verifier without -O: its proof checks use assertions.") + +ZERO = (0,) * 9 +T = (4, 0, 0, 0, 4, 0, 0, 0, 4) +C = tuple(2 * v for v in T) +TOTAL = tuple(3 * v for v in T) + + +def alphabet(): + vectors = [v for v in product((-1, 0, 1), repeat=3) if any(v)] + return tuple(sorted({tuple(s * x * y for x in u for y in v) + for s in (1, 2) for u in vectors for v in vectors})) + + +def add(a, b): + return tuple(x + y for x, y in zip(a, b)) + + +def sum_frames(ids, frames): + return tuple(sum(frames[i][j] for i in ids) for j in range(9)) + + +def decompositions(frames, size, target): + """All nondecreasing index tuples summing to target, repetitions allowed. + + If one selected frame f leaves size-1 entries in [-2,2], then each + target[j]-f[j] must lie in [-2*(size-1),2*(size-1)]. This initial filter is + necessary. Recursion uses the same bound at every node. The final frame + is determined uniquely by the residual matrix, so a dictionary lookup + completes each branch without any symmetry or sign-orbit reduction. + """ + allowed = [i for i, f in enumerate(frames) + if all(abs(target[j] - f[j]) <= 2 * (size - 1) for j in range(9))] + lookup = {frames[i]: i for i in allowed} + output = [] + counts = Counter() + + def descend(start, remaining, residual, chosen): + counts['nodes'] += 1 + if remaining == 1: + last = lookup.get(residual) + if last is not None and last >= start: + output.append(chosen + (last,)) + return + bound = 2 * (remaining - 1) + for idx in allowed: + if idx < start: + continue + counts['trials'] += 1 + f = frames[idx] + # Test diagonal coordinates first; these reject most branches. + d0 = residual[0] - f[0] + d4 = residual[4] - f[4] + d8 = residual[8] - f[8] + if abs(d0) > bound or abs(d4) > bound or abs(d8) > bound: + continue + next_residual = (d0, residual[1] - f[1], residual[2] - f[2], + residual[3] - f[3], d4, residual[5] - f[5], + residual[6] - f[6], residual[7] - f[7], d8) + if any(abs(next_residual[j]) > bound for j in (1, 2, 3, 5, 6, 7)): + continue + descend(idx, remaining - 1, next_residual, chosen + (idx,)) + + descend(0, size, target, ()) + assert output == sorted(set(output)) + assert all(sum_frames(ids, frames) == target for ids in output) + return output, {'allowed_frames': len(allowed), **dict(counts)} + + +def positional_masks(ids, frames, target=T): + """Exhaust all 2^k positional subsets by recurrence from the least bit.""" + sums = [ZERO] * (1 << len(ids)) + matches = [] + for mask in range(1, 1 << len(ids)): + bit = mask & -mask + pos = bit.bit_length() - 1 + sums[mask] = add(sums[mask ^ bit], frames[ids[pos]]) + if sums[mask] == target: + matches.append(mask) + return matches + + +def weighted_subsets(ids, frames, target=T): + """Independent multiplicity count via submultisets and binomial weights.""" + counts = sorted(Counter(ids).items()) + total = 0 + matching = [] + for multiplicities in product(*(range(n + 1) for _, n in counts)): + sub = tuple(i for (i, _), m in zip(counts, multiplicities) for _ in range(m)) + if sum_frames(sub, frames) == target: + weight = 1 + for (_, n), m in zip(counts, multiplicities): + weight *= comb(n, m) + total += weight + matching.append({'multiplicities': list(multiplicities), 'positional_weight': weight}) + return total, matching + + +def candidates(left, right): + return sorted({tuple(sorted(a + b)) for a in left for b in right}) + + +def analyze(items, frames): + hist = Counter() + rows = [] + for ids in items: + assert sum_frames(ids, frames) == TOTAL + masks = positional_masks(ids, frames) + weighted, submultisets = weighted_subsets(ids, frames) + assert len(masks) == weighted, (ids, masks, submultisets) + assert masks + hist[len(masks)] += 1 + common = (1 << len(ids)) - 1 + for mask in masks: + common &= mask + rows.append({'frames': list(ids), 'target_masks': masks, + 'common_positions_mask': common, + 'target_submultisets': submultisets}) + return {str(k): hist[k] for k in sorted(hist)}, rows + + +def canonical(value): + return json.dumps(value, sort_keys=True, separators=(',', ':')).encode('utf8') + + +def run(): + start = time.perf_counter() + frames = alphabet() + assert len(frames) == 676 + # Positive fixture: each coordinate matrix occurs and has exact rank one. + for j in (0, 4, 8): + assert tuple(int(k == j) for k in range(9)) in frames + lists, diagnostics = {}, {} + for name, n, target in [('target3', 3, T), ('target4', 4, T), + ('complement4', 4, C), ('complement5', 5, C)]: + lists[name], diagnostics[name] = decompositions(frames, n, target) + seven = candidates(lists['target3'], lists['complement4']) + eight = sorted(set(candidates(lists['target3'], lists['complement5'])) | + set(candidates(lists['target4'], lists['complement4']))) + hist7, rows7 = analyze(seven, frames) + hist8, rows8 = analyze(eight, frames) + survivors = [row for row in rows8 if len(row['target_masks']) >= 3] + result = { + 'schema': 'independent-dyadic-ternary-census-v1', + 'method': 'ordered tuple DFS with coordinate bounds and terminal lookup; independent positional and binomial-multiplicity subset counts', + 'frames': [list(f) for f in frames], + 'decompositions': {key: [list(x) for x in value] for key, value in lists.items()}, + 'counts': {key: len(value) for key, value in lists.items()}, + 'seven': {'count': len(seven), 'target_subset_census': hist7, 'candidates': rows7}, + 'eight': {'count': len(eight), 'target_subset_census': hist8, 'candidates': rows8}, + 'survivors': survivors, + } + assert result['counts'] == {'target3': 8, 'target4': 552, 'complement4': 1, 'complement5': 28} + assert len(seven) == 8 and hist7 == {'1': 8} + assert len(eight) == 776 and hist8 == {'1': 690, '2': 80, '4': 6} + assert len(survivors) == 6 + result['independently_constructed_characters'] = [construct_character(tuple(r['frames']), frames) for r in survivors] + result['self_checks'] = self_checks(frames) + return result, {'python': platform.python_version(), 'seconds': time.perf_counter()-start, + 'diagnostics': diagnostics, 'proof_data_sha256': sha256(canonical(result)).hexdigest()} + + +def dot(functional, matrix): + return sum((a * b for a, b in zip(functional, matrix)), Fraction(0)) + + +def solve_linear(rows, values): + """Exact reduced row elimination; free variables are set to zero.""" + mat = [[Fraction(v) for v in row] + [Fraction(value)] + for row, value in zip(rows, values)] + pivots = [] + for col in range(9): + pivot = next((r for r in range(len(pivots), len(mat)) if mat[r][col]), None) + if pivot is None: + continue + row = len(pivots) + mat[row], mat[pivot] = mat[pivot], mat[row] + scale = mat[row][col] + mat[row] = [v / scale for v in mat[row]] + for r in range(len(mat)): + if r != row and mat[r][col]: + scale = mat[r][col] + mat[r] = [x - scale * y for x, y in zip(mat[r], mat[row])] + pivots.append(col) + if any(not any(row[:9]) and row[9] for row in mat): + return None + solution = [Fraction(0)] * 9 + for row, col in enumerate(pivots): + solution[col] = mat[row][9] + assert all(dot(solution, row) == value for row, value in zip(rows, values)) + return solution + + +def construct_character(ids, frames): + """Find a fresh exact character without reading a predecessor functional.""" + rows = [frames[i] for i in ids] + [T] + for odd in range(len(ids)): + for even in range(len(ids)): + if odd == even: + continue + values = [0] * len(ids) + values[odd], values[even] = 1, 2 + functional = solve_linear(rows, values + [1]) + if functional is not None: + return {'frames': list(ids), 'functional': [str(v) for v in functional], + 'frame_values': values, 'target_value': 1} + raise AssertionError('No singleton-odd character found') + + +def self_checks(frames): + # Repeated occurrences of the same matrix really are separate subsets. + unit = (1, 0, 0, 0, 0, 0, 0, 0, 0) + other = (0, 0, 0, 0, 1, 0, 0, 0, 0) + i, j = frames.index(unit), frames.index(other) + assert positional_masks((i, i, j), frames, unit) == [1, 2] + assert weighted_subsets((i, i, j), frames, unit)[0] == 2 + assert decompositions(frames, 1, unit)[0] == [(i,)] + impossible = tuple(5 * v for v in unit) + assert decompositions(frames, 2, impossible)[0] == [] + assert solve_linear([ZERO], [1]) is None + return ['duplicate positional multiplicity', 'one-frame positive fixture', + 'coordinate-bound impossible fixture', 'inconsistent exact linear system'] + + +def validate_certificate_data(result, other): + assert other['schema_version'] == 1 + assert other['frame_denominator'] == 4 + assert other['target_scaled'] == list(T) + assert other['alphabet'] == result['frames'] + mappings = {'target3': 'decompositions_three', 'target4': 'decompositions_four', + 'complement5': 'complements_five'} + for ours, theirs in mappings.items(): + assert sorted(result['decompositions'][ours]) == sorted(other[theirs]), theirs + for number in ('seven', 'eight'): + assert sorted(r['frames'] for r in result[number]['candidates']) == sorted(other['candidates_' + number]) + assert result[number]['target_subset_census'] == other['subset_census_' + number] + survivors = sorted(r['frames'] for r in result['survivors']) + assert survivors == sorted(other['rank_survivors_eight']) + characters = other['character_obstructions'] + assert sorted(c['frames'] for c in characters) == survivors + frames = result['frames'] + for character in characters: + functional = [Fraction(v) for v in character['functional']] + assert len(functional) == 9 + actual = [dot(functional, frames[i]) for i in character['frames']] + assert all(v.denominator == 1 for v in actual) + assert actual == character['frame_values'] + assert sum(int(v) % 2 for v in actual) == 1 + assert dot(functional, T) == character['target_value'] == 1 + # Each role is an independent diagonal action. Its exponents must sum to T. + witness = other['nine_call_witness'] + assert len(witness) == 9 + assert all(isinstance(w['frame_id'], int) and 0 <= w['frame_id'] < len(frames) + and w['role'] in (0, 1, 2) for w in witness) + for role in range(3): + assert sum_frames([w['frame_id'] for w in witness if w['role'] == role], frames) == T + + +def compare_certificate(result, filename): + payload = Path(filename).read_bytes() + other = json.loads(payload) + validate_certificate_data(result, other) + rejected = [] + for mutation in ('missing_decomposition', 'zero_character'): + corrupt = json.loads(payload) + if mutation == 'missing_decomposition': + corrupt['decompositions_four'].pop() + else: + corrupt['character_obstructions'][0]['functional'] = ['0'] * 9 + try: + validate_certificate_data(result, corrupt) + except AssertionError: + rejected.append(mutation) + else: + raise AssertionError('Corrupt certificate accepted: ' + mutation) + return {'file': str(filename), 'sha256': sha256(payload).hexdigest(), + 'status': 'all census lists, exact parity characters, and nine-call witness agree', + 'rejected_controls': rejected} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--output', type=Path) + parser.add_argument('--certificate', type=Path, default=Path(__file__).with_name('CERTIFICATE.json')) + args = parser.parse_args() + result, receipt = run() + receipt['certificate_comparison'] = compare_certificate(result, args.certificate) + if args.output: + args.output.write_text(json.dumps({'proof_data': result, 'receipt': receipt}, indent=2) + '\n', encoding='utf8') + print(json.dumps({'counts': result['counts'], 'seven': result['seven']['target_subset_census'], + 'eight': result['eight']['target_subset_census'], 'survivors': len(result['survivors']), + **receipt}, indent=2)) + + +if __name__ == '__main__': + main() diff --git a/research/bit-quarter-ternary-catalyst/verify.py b/research/bit-quarter-ternary-catalyst/verify.py new file mode 100644 index 0000000000..0d5def401f --- /dev/null +++ b/research/bit-quarter-ternary-catalyst/verify.py @@ -0,0 +1,335 @@ +#!/usr/bin/env python3 +"""Exact finite-alphabet census and parity-character certificates. + +Adapted from Tuafo / PR1604 at c5f5bef84f6648d5573f801c283e01a333ea5f89. +Apache-2.0; substantial OpenAI assistance for Maximooch. + +Default execution is read-only. --write explicitly regenerates CERTIFICATE.json. +All address arithmetic is integral or rational; binary arithmetic applies only +to scalar register matrices and to integral-valued characters. +""" + +import argparse +from collections import Counter, defaultdict +from copy import deepcopy +from fractions import Fraction +from itertools import product +import json +from pathlib import Path + + +HERE = Path(__file__).resolve().parent +ZERO = (0,) * 9 +TARGET = (4, 0, 0, 0, 4, 0, 0, 0, 4) +COMPLEMENT_TARGET = tuple(2 * x for x in TARGET) +DIAGONAL = (0, 4, 8) +SCOPE = "three identical identity targets; ternary outer products divided by two or four; arbitrary finite restored dirty registers" + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def add(a, b): + return tuple(x + y for x, y in zip(a, b)) + + +def subtract(a, b): + return tuple(x - y for x, y in zip(a, b)) + + +def trace(a): + return sum(a[i] for i in DIAGONAL) + + +def alphabet(): + vectors = [v for v in product((-1, 0, 1), repeat=3) if any(v)] + return sorted({tuple(s * u[i] * v[j] for i in range(3) for j in range(3)) for s in (1, 2) + for u in vectors for v in vectors}) + + +def target_masks(word, frames): + """Preserve positional multiplicities, including equal frame occurrences.""" + sums = [ZERO] + for frame_id in word: + sums += [add(value, frames[frame_id]) for value in sums] + return [mask for mask, value in enumerate(sums) if value == TARGET] + + +def census(): + frames = alphabet() + pairs = defaultdict(list) + for i, left in enumerate(frames): + for j in range(i, len(frames)): + pairs[add(left, frames[j])].append((i, j)) + + triples, quadruples = set(), set() + for i, frame in enumerate(frames): + for j, k in pairs.get(subtract(TARGET, frame), ()): + if i <= j: + triples.add((i, j, k)) + for pair_sum, left_pairs in pairs.items(): + for i, j in left_pairs: + for k, ell in pairs.get(subtract(TARGET, pair_sum), ()): + if j <= k: + quadruples.add((i, j, k, ell)) + + # Five terms in [-2,2] summing to 8 cannot include a negative term: + # even the other four maximal entries would then sum to at most 7. + # Total trace is 24; a pair has trace <=12, a triple <=18. + nonnegative = [i for i, frame in enumerate(frames) + if all(frame[d] >= 0 for d in DIAGONAL)] + nonnegative_pairs = defaultdict(list) + for pos, i in enumerate(nonnegative): + for j in nonnegative[pos:]: + if trace(frames[i]) + trace(frames[j]) >= 6: + nonnegative_pairs[add(frames[i], frames[j])].append((i, j)) + complements = set() + for pos_i, i in enumerate(nonnegative): + for pos_j in range(pos_i, len(nonnegative)): + j = nonnegative[pos_j] + for k in nonnegative[pos_j:]: + if trace(frames[i]) + trace(frames[j]) + trace(frames[k]) < 12: + continue + triple_sum = add(add(frames[i], frames[j]), frames[k]) + for ell, m in nonnegative_pairs.get(subtract(COMPLEMENT_TARGET, triple_sum), ()): + if k <= ell: + complements.add((i, j, k, ell, m)) + + # Four terms summing to 8I must all have diagonal (2,2,2). + hadamard = tuple(i for i, frame in enumerate(frames) + if all(frame[d] == 2 for d in DIAGONAL)) + require(len(hadamard) == 4, "full-diagonal alphabet is not four frames") + total = ZERO + for i in hadamard: + total = add(total, frames[i]) + require(total == COMPLEMENT_TARGET, "four full-diagonal frames do not sum to 8I") + # Check the claimed unique multiset, with repetitions allowed, directly. + full_complements = set() + for i in hadamard: + for j in hadamard: + for k in hadamard: + for ell in hadamard: + if i <= j <= k <= ell and add(add(frames[i], frames[j]), + add(frames[k], frames[ell])) == COMPLEMENT_TARGET: + full_complements.add((i, j, k, ell)) + require(full_complements == {hadamard}, "four-frame complement uniqueness failed") + + words7 = sorted({tuple(sorted(t + hadamard)) for t in triples}) + words8 = {tuple(sorted(t + c)) for t in triples for c in complements} + words8.update(tuple(sorted(q + hadamard)) for q in quadruples) + words8 = sorted(words8) + counts7 = Counter(len(target_masks(w, frames)) for w in words7) + counts8 = Counter(len(target_masks(w, frames)) for w in words8) + survivors = [w for w in words8 if len(target_masks(w, frames)) >= 3] + require(all(len(target_masks(w, frames)) < 3 for w in words7), + "seven-call candidate survives coefficient-rank bound") + return { + "alphabet": frames, + "decompositions_three": sorted(triples), + "decompositions_four": sorted(quadruples), + "complements_five": sorted(complements), + "candidates_seven": words7, + "candidates_eight": words8, + "subset_census_seven": {str(k): v for k, v in sorted(counts7.items())}, + "subset_census_eight": {str(k): v for k, v in sorted(counts8.items())}, + "rank_survivors_eight": survivors, + } + + +def solve_rational(rows, rhs): + matrix = [[Fraction(x) for x in row] + [Fraction(value)] + for row, value in zip(rows, rhs)] + pivot_row, columns = 0, [] + for col in range(9): + next_row = next((r for r in range(pivot_row, len(matrix)) if matrix[r][col]), None) + if next_row is None: + continue + matrix[pivot_row], matrix[next_row] = matrix[next_row], matrix[pivot_row] + scale = matrix[pivot_row][col] + matrix[pivot_row] = [x / scale for x in matrix[pivot_row]] + for r in range(len(matrix)): + if r != pivot_row and matrix[r][col]: + scale = matrix[r][col] + matrix[r] = [x - scale * y for x, y in zip(matrix[r], matrix[pivot_row])] + columns.append(col) + pivot_row += 1 + if any(not any(row[:9]) and row[9] for row in matrix): + return None + answer = [Fraction(0)] * 9 + for r, col in enumerate(columns): + answer[col] = matrix[r][9] + return answer + + +def make_character(word, frames): + masks = target_masks(word, frames) + mandatory = set.intersection(*(set(j for j in range(8) if mask >> j & 1) + for mask in masks)) + for odd in sorted(mandatory): + for even in sorted(set(range(8)) - mandatory): + values = [int(j == odd) + 2 * int(j == even) for j in range(8)] + functional = solve_rational([frames[i] for i in word], values) + if functional is not None: + return {"frames": list(word), + "functional": [str(x) for x in functional], + "frame_values": values, "target_value": 1} + raise ValueError("no one-call character found for surviving multiset") + + +def check_character(record, frames): + functional = [Fraction(x) for x in record["functional"]] + require(len(functional) == 9, "character covector must have nine entries") + values = [sum(a * b for a, b in zip(functional, frames[i])) + for i in record["frames"]] + require(all(v.denominator == 1 for v in values), "character is not integral on every frame") + require(values == record["frame_values"], "character frame values changed") + target_value = sum(a * b for a, b in zip(functional, TARGET)) + require(target_value.denominator == 1 and target_value % 2 == 1, + "character target must be an odd integer") + require(target_value == record["target_value"], "character target value changed") + require(sum(int(v) % 2 for v in values) == 1, "character does not leave exactly one call") + + +def multiply_binary(a, b, roles): + result = 0 + row_mask = (1 << roles) - 1 + for i in range(roles): + row = 0 + for k in range(roles): + if a >> (i * roles + k) & 1: + row ^= (b >> (k * roles)) & row_mask + result |= row << (i * roles) + return result + + +def formal_word(word, frames, roles): + identity = sum(1 << (i * roles + i) for i in range(roles)) + result = {ZERO: identity} + for call in word: + role = call["role"] + require(0 <= role < roles, "witness projector outside register range") + frame_id = call["frame_id"] + require(0 <= frame_id < len(frames), "witness frame outside alphabet") + projector = 1 << (role * roles + role) + constant = identity ^ projector + next_result = defaultdict(int) + for exponent, coefficient in result.items(): + next_result[exponent] ^= multiply_binary(coefficient, constant, roles) + next_result[add(exponent, frames[frame_id])] ^= multiply_binary(coefficient, projector, roles) + result = {exponent: coefficient for exponent, coefficient in next_result.items() if coefficient} + return result + + +def check_witness(word, frames): + require(len(word) == 9, "attaining witness must have nine calls") + # Formal matrix coefficients cover arbitrary data and dirty inputs. Extra + # coordinates are identity blocks; three sizes also exercise this handling. + for roles in (3, 4, 6): + active = sum(1 << (i * roles + i) for i in range(3)) + dirty = sum(1 << (i * roles + i) for i in range(3, roles)) + expected = {TARGET: active} + if dirty: + expected[ZERO] = dirty + require(formal_word(word, frames, roles) == expected, + "nine-call formal identity or dirty restoration failed") + + +def json_value(value): + return json.loads(json.dumps(value)) + + +def make_certificate(data): + frames = data["alphabet"] + triple = data["decompositions_three"][0] + certificate = {"schema_version": 1, "scope": SCOPE, + "frame_denominator": 4, "target_scaled": list(TARGET), **json_value(data)} + certificate["character_obstructions"] = [make_character(word, frames) + for word in data["rank_survivors_eight"]] + certificate["nine_call_witness"] = [{"frame_id": i, "role": role} + for role in range(3) for i in triple] + return certificate + + +def check_certificate(certificate, data): + require(certificate.get("schema_version") == 1, "wrong certificate schema") + require(certificate.get("scope") == SCOPE, "wrong scope") + require(certificate.get("frame_denominator") == 4, "wrong frame denominator") + require(certificate.get("target_scaled") == list(TARGET), "wrong scaled target") + for key, value in data.items(): + require(certificate.get(key) == json_value(value), "census mismatch: " + key) + frames = data["alphabet"] + records = certificate["character_obstructions"] + require([r["frames"] for r in records] == json_value(data["rank_survivors_eight"]), + "missing, extra or reordered character obstruction") + for record in records: + check_character(record, frames) + check_witness(certificate["nine_call_witness"], frames) + + +def controls(certificate, data): + mutations = [] + changed = deepcopy(certificate) + changed["character_obstructions"][0]["functional"] = [ + str(2 * Fraction(x)) for x in changed["character_obstructions"][0]["functional"]] + changed["character_obstructions"][0]["frame_values"] = [ + 2 * x for x in changed["character_obstructions"][0]["frame_values"]] + changed["character_obstructions"][0]["target_value"] *= 2 + mutations.append(("changed character", changed)) + changed = deepcopy(certificate) + changed["character_obstructions"][0]["functional"] = [ + str(Fraction(x) / 2) for x in changed["character_obstructions"][0]["functional"]] + mutations.append(("nonintegral character", changed)) + changed = deepcopy(certificate) + changed["candidates_eight"].pop() + mutations.append(("deleted candidate", changed)) + changed = deepcopy(certificate) + changed["alphabet"].append(changed["alphabet"][-1]) + mutations.append(("duplicate alphabet frame", changed)) + changed = deepcopy(certificate) + changed["target_scaled"][8] = 0 + mutations.append(("changed target", changed)) + changed = deepcopy(certificate) + changed["frame_denominator"] = 1 + mutations.append(("wrong denominator", changed)) + changed = deepcopy(certificate) + changed["nine_call_witness"].pop() + mutations.append(("omitted witness call", changed)) + changed = deepcopy(certificate) + changed["nine_call_witness"][0]["role"] = 1 + mutations.append(("wrong witness projector", changed)) + for name, changed in mutations: + try: + check_certificate(changed, data) + except ValueError: + continue + raise ValueError("negative control accepted: " + name) + return len(mutations) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--write", action="store_true", help="explicitly regenerate CERTIFICATE.json") + args = parser.parse_args() + data = census() + path = HERE / "CERTIFICATE.json" + if args.write: + certificate = make_certificate(data) + else: + certificate = json.loads(path.read_text(encoding="utf-8")) + check_certificate(certificate, data) + require(certificate == make_certificate(data), "certificate is not the canonical complete replay") + control_count = controls(certificate, data) + if args.write: + path.write_text(json.dumps(certificate, indent=2) + "\n", encoding="utf-8", newline="\n") + print("PASS_QUARTER_TERNARY_CATALYST" + f" alphabet={len(data['alphabet'])} candidates7={len(data['candidates_seven'])}" + f" candidates8={len(data['candidates_eight'])}" + f" rank_survivors8={len(data['rank_survivors_eight'])}" + f" character_obstructions={len(certificate['character_obstructions'])}" + f" minimum_calls=9 arbitrary_dirty_registers=yes controls={control_count}") + + +if __name__ == "__main__": + main()